我正在使用mapbox sdk 0.5.0并且我在mapview上成功绘制了我的位置。但是当我尝试获取精确位置时,GpsLocationProvider
或UserLocationOverlay
的坐标返回值与mapview上绘制的坐标不同。这是获取我的位置的方法:
private void GetMyLocation(){
gpsLocationProvider = new GpsLocationProvider(ShowMap.this);
userLocationOverlay = new UserLocationOverlay(gpsLocationProvider, mapview);
userLocationOverlay.enableMyLocation();
userLocationOverlay.setDrawAccuracyEnabled(true);
mapview.getOverlays().add(userLocationOverlay);
mapview.setCenter(userLocationOverlay.getMyLocation());
mapview.setUserLocationRequiredZoom(10);
Marker marker = new Marker(mapview, "", "", new LatLng(userLocationOverlay.getLastFix().getLatitude(), userLocationOverlay.getLastFix().getLongitude()));
mapview.addMarker(marker);
}
以下是我的应用的截图。圆形标记是我的精确位置,黑色标记是getLastFix
的位置。
我将不胜感激任何帮助。谢谢。
答案 0 :(得分:2)
目前在实例化UserLocationOverlay与使用捆绑在MapView中的基础设施之间存在一些脱节。请尝试以下方法:
// Setup UserLocation monitoring
MapView mv = (MapView) view.findViewById(R.id.locateMeMapView);
mv.setUserLocationEnabled(true);
mv.setUserLocationTrackingMode(UserLocationOverlay.TrackingMode.FOLLOW);
mv.setUserLocationRequiredZoom(10);
// Retrieve UserLocation
mv.getUserLocation();