Как отобразить указатель текущей позиции в osmdroid? - PullRequest
2 голосов
/ 10 января 2012

Я бы хотел отобразить указатель текущей позиции с помощью osmdroid.

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

Этот код не отображает указатель.Так есть ли что-то встроенное для osmdroid, как для карт Google?

Ответы [ 3 ]

4 голосов
/ 14 января 2012

Вам необходимо добавить что-то вроде 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);
0 голосов
/ 01 января 2019

код котлина:

 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)
0 голосов
/ 10 января 2012

SetCenter будет устанавливать только положение карты на определенном месте. Он не будет добавлять указатель к центру. Вы либо используете mapview.addView или addoverlay mapView. Osmdroid обеспечивает почти ту же функциональность, что и MapView

...