如何在osmdroid中显示当前位置指针?

时间:2012-01-10 14:24:23

标签: android locationlistener osmdroid

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

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

此代码不显示指针。那么有没有为osmdroid内置的内容,因为它适用于谷歌地图?

3 个答案:

答案 0 :(得分:4)

您需要添加类似以下内容的位置覆盖。

        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);

答案 1 :(得分:0)

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

几乎相同的功能

答案 2 :(得分:0)

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)