放大Android中MapActivity(ItemizedOverlay)中的一组点

时间:2010-11-24 09:51:31

标签: android overlay zoom android-mapview itemizedoverlay

如果我希望我的所有POI在地图中可见,那么我需要动态调整两个参数:

  • 地图的中心焦点
  • 缩放步骤

我想知道MapActivity中是否已经内置了这样的行为?如果没有,你能提供我的示例代码吗?

1 个答案:

答案 0 :(得分:0)

答案不是在一组点中找到中心点,然后调用mapController.zoomToSpan(centrePoint)。而是在ItemizedOverlay中执行以下操作:

public void calculateMapBounds()
{       
    int minLat = Integer.MAX_VALUE;
    int minLon = Integer.MAX_VALUE;
    int maxLat = Integer.MIN_VALUE;
    int maxLon = Integer.MIN_VALUE;

    for (LocatorPosition position : mPositions)
    {
        minLat = Math.min(position.getLatitudeE6(), minLat);
        minLon = Math.min(position.getLongitudeE6(), minLon); 
        maxLat = Math.max(position.getLatitudeE6(), maxLat); 
        maxLon = Math.max(position.getLongitudeE6(), maxLon);
    }

    spanLat = maxLat - minLat;
    spanLon = maxLon - minLon;

}

然后调用mapController.zoomToSpan(spanLat,spanLon);