当前位置和目的地的Android地图缩放级别

时间:2011-12-05 02:29:51

标签: android android-mapview

我使用Google地图,MappingOverlayActivity和ItemizedOverlay显示用户的当前位置及其预定目的地。

首先设置适当缩放级别的最佳方法是什么,以便两个位置都显示在屏幕上的地图上,地图覆盖最大区域,即不是当前位置在中心,具有中心处于2点的中间位置。当用户当前位置发生变化时,如何重新计算并重置适当的缩放级别以合并新的当前位置。

2 个答案:

答案 0 :(得分:3)

您使用MapController中的方法(使用mapView.getController()获得)。

具体为animateTo(或moveTo)和zoomToSpan

假设您有两个GeoPoints

GeoPoint current;
GeoPoint destination;

做这样的事情

mapController.zoomToSpan(Math.abs(current.getLatitudeE6() - destination.getLatitudeE6()), Math.abs(current.getLongitudeE6() - destination.getLongitudeE6());
mapController.animateTo(new GeoPoint((current.getLatitudeE6() + destination.getLatitudeE6())/2, (current.getLongitudeE6() + destination.getLongitudeE6())/2));

所以你计算点的跨度(差异)和中心(平均值)。

答案 1 :(得分:0)

对于坐标的中心,您可能需要进行一些数学计算 http://en.wikipedia.org/wiki/Centroid