Как отобразить указатель текущей позиции в osmdroid?

StackOverflow https://stackoverflow.com/questions/8804788

Вопрос

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

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

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

Это было полезно?

Решение

Вам нужно добавить 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);

Другие советы

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

Код котлина:

 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