Pregunta

Me gustaría mostrar el puntero de posición actual usando OSMDroid.

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

Este código no muestra el puntero. Entonces, ¿hay algo incorporado para OSMDroid como lo es para Google Maps?

¿Fue útil?

Solución

Necesitas agregar un myLocationOverlay algo como lo siguiente.

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

Otros consejos

SetCenter solo establecerá la posición del mapa en una ubicación particular. No agregará ningún puntero al centro. Usa mapView.addview o addoverlay de MapView. OSMDroid proporciona casi la misma funcionalidad que la de MapView

Código 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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top