概括
我需要能够从当前的地图视图移动到纬度/经度跨度。我希望这一举动以动画的方式发生(类似于animateTo
工作方式)。我需要从当前视图开始,放大或缩小以达到目标纬度/经度跨度。下面是我在使用 zoomLevels 时用来执行此操作的代码。但我必须使用跨度,而不是缩放级别来实现这一点。
[编辑]
这就是我正在做的事情animateTo
。我需要这个等价物,但是使用 Lat/Lng Span 来结束我的最终视图(我需要缩放和居中,显示提供的 lat/lng 跨度)。您会注意到,我正在使用targetZoomLevel
并currentZoomLevel
确定要进行多少缩放...我需要使用 lat/lng 跨度。
public static void smoothZoom(final MapController controller,
final int currentZoomLevel, final int targetZoomLevel,
int latitude, int longitude) {
final Handler handler = new Handler();
controller.animateTo(new GeoPoint(latitude, longitude), new Runnable() {
public void run() {
int currentZoom = currentZoomLevel;
int zoomTarget = targetZoomLevel;
// Smooth zoom handler
// int zoomLevel = _mapView.getZoomLevel();
// int targetZoomLevel = targetLevel;
long delay = 0;
if (zoomTarget > currentZoom) {
while (currentZoom++ < zoomTarget) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
controller.zoomIn();
}
}, delay);
delay += 150; // Change this to whatever is good on the
// device
}
}
}
});
}
[编辑]
我现在真的需要这个代码用于我的应用程序,没有办法解决它。第一个帮助我获得工作代码的人获得 250 个代表。