Mapbox从设备精确位置获取经度和纬度

时间:2014-11-27 03:27:51

标签: android location mapbox

我正在使用mapbox sdk 0.5.0并且我在mapview上成功绘制了我的位置。但是当我尝试获取精确位置时,GpsLocationProviderUserLocationOverlay的坐标返回值与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的位置。 enter image description here 我将不胜感激任何帮助。谢谢。

1 个答案:

答案 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();