gpt4 book ai didi

android - 在 map Activity 中缩放和平移到纬度/经度跨度

转载 作者:行者123 更新时间:2023-11-29 15:26:31 27 4
gpt4 key购买 nike

总结

我需要能够从我当前的 map View 移动到纬度/经度跨度。我希望此移动以动画的方式发生(类似于 animateTo 的工作方式)。我需要从当前 View 出发,放大或缩小以最终达到目标纬度/经度跨度。下面是我在使用 zoomLevels 时用来执行此操作的代码。但我必须使用跨度,而不是缩放级别来完成此操作。

[编辑]

这是我为 animateTo 所做的。我需要这个的等价物,但使用 Lat/Lng Span 结束我的最终 View (我需要缩放和居中,显示提供的 lat/lng 跨度)。您会注意到,我正在使用 targetZoomLevelcurrentZoomLevel 来确定要进行多少缩放...我需要改用 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 个代表。

最佳答案

这对我有用:

MapController.setCenter(GeoPoint);

您可以从以下位置获取 MapController:

MapView.getController();

并从以下位置获取 GeoPoint:

new GeoPoint( (int) ( LAT * 1e6 ) , (int) ( LONG * 1e6 )  );

关于android - 在 map Activity 中缩放和平移到纬度/经度跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12111353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com