Как отобразить указатель текущей позиции в osmdroid?
-
26-10-2019 - |
Вопрос
Я хотел бы отобразить указатель текущей позиции с помощью 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)
Не связан с StackOverflow