如何使用OSMdroid从MyLocationNewOverlay中检索geopoint

时间:2016-05-17 18:48:35

标签: java android location osmdroid mylocationoverlay

使用MyLocationNewOverlay我可以在我的mapview中显示用户的当前位置。

 mylocation = new MyLocationNewOverlay(mapView);
            mylocation.enableMyLocation();
            mylocation.enableFollowLocation();
            IMyLocationProvider s= mylocation.getMyLocationProvider();
            mylocation.getMyLocation();
            mapView.getOverlays().add(mylocation);

要创建路由,我尝试通过mylocation.getMyLocation /mylocation.getLastFix()获取用户的当前位置,但两者都返回null。如何检索geopoint / lat长点?

1 个答案:

答案 0 :(得分:0)

如果您使用了mylocation.getMyLocation()并且它返回了null,那是因为您没有留出足够的时间来查找您的位置。

如果我们在这里查看源代码:

public GeoPoint getMyLocation() {
    if (mLocation == null) {
        return null;
    } else {
        return new GeoPoint(mLocation);
    }
}

您只是因为您的位置实际为空而得到null,mylocation.getLastFix()

也是如此
public Location getLastFix() {
    return mLocation;
}

确保在尝试获取位置之前至少等待runOnFirstFix结束。

另外,该行:

IMyLocationProvider s= mylocation.getMyLocationProvider();

在这种情况下是不必要的,除此之外,你应该走在正确的轨道上。