2

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

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

此代码不显示指针。那么 osmdroid 有没有像谷歌地图那样内置的东西?

4

3 回答 3

4

您需要添加一个 MyLocationOverlay ,如下所示。

        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);
于 2012-01-13T22:48:49.943 回答
0

SetCenter 只会将地图位置设置为特定位置。它不会向中心添加任何指针。您可以使用 mapview.addView 或 mapView 的 addoverlay。Osmdroid 提供与 MapView 几乎相同的功能

于 2012-01-10T15:10:03.913 回答
0

科特林代码:

 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)
于 2018-12-31T23:34:39.623 回答