java - 通过 osmdroid 上的网络提供商获取当前位置

标签 java android osmdroid locationlistener

在我的 Android 应用程序中,我使用 osmdroid 框架。在框架中,我使用 MyLocationNewOverlay(),它包含一个在 map 上显示当前位置的方法。

我的问题
框架中的 LocationListener 似乎不使用网络提供商,只想通过 GPS 定位我(效果很好,但前提是我在外面)。

如果 GPS 不可用,是否有使用 LocationProvider 的标准方法,该方法也可以与网络提供商一起使用?

AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

初始化我的位置叠加层的相当标准:

private void initMyLocationNewOverlay() {
        myLocationNewOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(context), mapView);
        myLocationNewOverlay.enableMyLocation();
        mapView.getOverlays().add(myLocationNewOverlay);
    }

提前致谢!

最佳答案

问题是 GpsMyLocationProvider 仅将 GPS_Provider 添加到其源中(您可以在构造函数中看到)。要添加网络提供商,请使用 addLocationSource,如下所示。

private void initMyLocationNewOverlay() {
        GpsMyLocationProvider provider = new GpsMyLocationProvider(context);
        provider.addLocationSource(LocationManager.NETWORK_PROVIDER);
        myLocationNewOverlay = new MyLocationNewOverlay(provider, mapView);
        myLocationNewOverlay.enableMyLocation();
        mapView.getOverlays().add(myLocationNewOverlay);
    }

关于java - 通过 osmdroid 上的网络提供商获取当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200016/

相关文章:

java - 带有osmdroid的osm map 中的标记

java - 无法列出来自 Azure java SDK 的图像发布者

java - moxy jaxb : mapping member attribute

java - 执行按位运算将位集空间减半时出现意外行为

android - 从 dimens.xml 加载值并使其为负

android - Flutter - setState 不更新内部有状态小部件

android - 如何在osm map 上标记我当前的位置?

java.lang.UnsupportedOperationException JavaFX ArrayList<String> 到 ObservableList<StringProperty>

android - handle 支持安卓

android - 使用 osmbonuspack 库在 osmdroid map 上绘制路线