android - 在 MapView 上看不到我当前位置的标记
问题描述
我想在 MapView 上添加我当前位置的标记,但未显示标记,代码如下:
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this.getContext());
........
@Override
public void onMapReady(GoogleMap googleMap) {
MapsInitializer.initialize(getContext());
googleMapObj = googleMap;
googleMapObj.setMapType(GoogleMap.MAP_TYPE_NORMAL);
getMyLastLocation();
moveCamera.....
googleMapObj.setMyLocationEnabled(true);
}
private void getMyLastLocation(){
mFusedLocationClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {
@Override
public void onComplete(@NonNull Task<Location> task) {
if(task.isSuccessful()){
Location location = task.getResult();
geopoint = new GeoPoint(location.getLatitude(),location.getLongitude());
Log.d(TAG, geopoint.toString());
googleMapObj.addMarker(new MarkerOptions()
.position(new LatLng(geopoint.getLongitude(),geopoint.getLongitude()))
.title("My Location"));
}
}
});
}
我想知道为什么 MapView 上没有显示标记
解决方案
在你的函数中试试这个:
Marker mCurrLocationMarker;
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title("Current Position");
markerOptions.icon(BitmapDescriptorFactory.
defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
mCurrLocationMarker = mGoogleMap.addMarker(markerOptions);
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLngo, 11));
推荐阅读
- azure - 未将边缘设备设置为网关时 Azure IoT Edge 设备上产品证书的用途
- blocking - 尝试从 AS 发送 CANCEL 请求时收到 481 错误
- php - 注意:尝试在 (PHP 7.4.9) 中访问 bool 类型值的数组偏移量
- html - CSS 菜单下划线动画
- docker - 无法将 iptables 防火墙规则正确添加到 Docker 容器
- python - 我需要弄清楚如何将用户输入保存为新变量,不知道从这里做什么
- makefile - 来自 make 命令的 Makefile 函数,而不是 shell 命令
- rest - 对文件和 Json 进行 HTTP 响应
- node.js - 如何让 Node.Js 允许我为客户端证书提供智能卡/cac
- scala - Scala,如何使用函数式编程在复杂序列之间进行一种连接操作?