我想使用osmdroid显示当前位置指针。

getController().setCenter(new GeoPoint(location));

此代码不显示指针。那么,对于Google Maps来说,osmdroid是否内置了任何内置的东西?

有帮助吗?

解决方案

您需要添加如下所示。

        mMyLocationOverlay = new MyLocationOverlay(this, mOsmv,
                mResourceProxy);
        mMyLocationOverlay.disableMyLocation(); // not on by default
        mMyLocationOverlay.disableCompass();
        mMyLocationOverlay.disableFollowLocation();
        mMyLocationOverlay.setDrawAccuracyEnabled(true);
        mMyLocationOverlay.runOnFirstFix(new Runnable() {
            public void run() {
                mOsmvController.animateTo(mMyLocationOverlay
                        .getMyLocation());
            }
        });
        mOsmOverlays.add(mMyLocationOverlay);

其他提示

SetCenter仅将地图位置设置为特定位置。它不会向中心添加任何指针。您要么使用mapview.addview或MapView的附加力机。 osmdroid提供的功能与MapView的功能几乎相同

Kotlin代码:

 val mMyLocationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(this), myMapView)
            val mapController = mapView.controller
            mMyLocationOverlay.disableMyLocation()
            mMyLocationOverlay.disableFollowLocation()
            mMyLocationOverlay.isDrawAccuracyEnabled = true
            mMyLocationOverlay.runOnFirstFix {
                runOnUiThread {
                    mapController.animateTo(mMyLocationOverlay.myLocation)
                    mapController.setZoom(18)
                }
            }
    mapView.overlays.add(mMyLocationOverlay)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top