【发布时间】:2012-01-10 14:24:23
【问题描述】:
我想使用 osmdroid 显示当前位置指针。
getController().setCenter(new GeoPoint(location));
此代码不显示指针。那么 osmdroid 是否像谷歌地图一样内置了任何东西?
【问题讨论】:
标签: android locationlistener osmdroid
我想使用 osmdroid 显示当前位置指针。
getController().setCenter(new GeoPoint(location));
此代码不显示指针。那么 osmdroid 是否像谷歌地图一样内置了任何东西?
【问题讨论】:
标签: android locationlistener osmdroid
您需要添加一个 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 或 mapView 的 addoverlay。 Osmdroid 提供与 MapView 几乎相同的功能
【讨论】:
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)
【讨论】: