如何计算跟踪路线的缩放级别,以完全适应地图(屏幕)的视图?我在Lon/Lat位置有根/整个轨迹/的起始点和结束点,我可以用输入参数m来计算缩放级别,但我需要设置多少m?我想在地图上显示记录的轨迹。我显示了轨迹,但不适合地图。
发布于 2012-11-30 17:38:11
您可以使用此代码片段设置缩放,只需在列表中传递开始和结束地理位置即可。如果你有两个以上的点,它也可以工作。
private void fixZoom(MapController controller, List <GeoPoint> items){
int minLat = Integer.MAX_VALUE;
int maxLat = Integer.MIN_VALUE;
int minLon = Integer.MAX_VALUE;
int maxLon = Integer.MIN_VALUE;
for (GeoPoint item : items)
{
int lat = item.getLatitudeE6();
int lon = item.getLongitudeE6();
maxLat = Math.max(lat, maxLat);
minLat = Math.min(lat, minLat);
maxLon = Math.max(lon, maxLon);
minLon = Math.min(lon, minLon);
}
controller.zoomToSpan((int) (Math.abs(maxLat - minLat) * 1.1), (int)(Math.abs(maxLon - minLon) * 1.1)); //1.1 to have some padding on the edges.
controller.animateTo(new GeoPoint( (maxLat + minLat)/2,(maxLon + minLon)/2 )); //so the center is positioned just in the middle
}希望这能有所帮助。
https://stackoverflow.com/questions/13642315
复制相似问题