代码之家  ›  专栏  ›  技术社区  ›  OneWorld

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

  •  0
  • OneWorld  · 技术社区  · 15 年前

    如果我想让所有的poi在地图上都可见,那么我需要动态地调整两个参数:

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

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

    1 回复  |  直到 15 年前
        1
  •  0
  •   John J Smith    15 年前

    答案不是在一组点中找到中心点,然后调用mapController.zoomToSpan(centre point)。相反,在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);