OSMDroid:使标记居中
OSMDroid: centering a marker
我有一个使用 OSMDroid 的项目。
有一个绘制标记的循环,结束之后我必须将地图居中放置在某个标记处。我的代码:
//I have on open Cursor c
Marker switchTo = null;
do {
Marker mr = new Marker(mapView);
GeoPoint gp = new GeoPoint(c.getDouble(iLat), c.getDouble(iLng));
mr.setPosition(gp);
//some actions: set anchor, drawable etc
int id = c.getInt(iId);
if (MainActivity.switchToId != -1 && id == MainActivity.switchToId) {
switchTo = mr; //if I have to switch to exactly this marker
MainActivity.switchToId = -1; //cleanup
}
mPoiMarkers.add(mr); //add to cluster
} while (c.moveToNext()); //next marker
mapView.getOverlays().add(mPoiMarkers); //add cluster to map
Log.d(TAG, "Markers redrawed.");
if (switchTo != null) { //go to marker
mapView.getController().setCenter(switchTo.getPosition());
mapView.getController().setZoom(14);
}
问题:地图设置的中心不是在标记处,而是在距离它几公里的地方。我不知道发生了什么。标记站在正常位置...
真正的方法是在设置缩放后设置中心。
mapView.getController().setZoom(15);
mapView.getController().setCenter(sw);
我有一个使用 OSMDroid 的项目。 有一个绘制标记的循环,结束之后我必须将地图居中放置在某个标记处。我的代码:
//I have on open Cursor c
Marker switchTo = null;
do {
Marker mr = new Marker(mapView);
GeoPoint gp = new GeoPoint(c.getDouble(iLat), c.getDouble(iLng));
mr.setPosition(gp);
//some actions: set anchor, drawable etc
int id = c.getInt(iId);
if (MainActivity.switchToId != -1 && id == MainActivity.switchToId) {
switchTo = mr; //if I have to switch to exactly this marker
MainActivity.switchToId = -1; //cleanup
}
mPoiMarkers.add(mr); //add to cluster
} while (c.moveToNext()); //next marker
mapView.getOverlays().add(mPoiMarkers); //add cluster to map
Log.d(TAG, "Markers redrawed.");
if (switchTo != null) { //go to marker
mapView.getController().setCenter(switchTo.getPosition());
mapView.getController().setZoom(14);
}
问题:地图设置的中心不是在标记处,而是在距离它几公里的地方。我不知道发生了什么。标记站在正常位置...
真正的方法是在设置缩放后设置中心。
mapView.getController().setZoom(15);
mapView.getController().setCenter(sw);