如何在谷歌地图上显示整个GeoPoint列表?

时间:2010-08-08 03:35:18

标签: android maps

我有不确定数量的GeoPoint,我想在谷歌地图上显示它们。我不知道怎么做。    谢谢!

2 个答案:

答案 0 :(得分:3)

    private void fitPoints(List<GeoPoint> points) {
    // set min and max for two points
    int nwLat = -90 * 1000000;
    int nwLng = 180 * 1000000;
    int seLat = 90 * 1000000;
    int seLng = -180 * 1000000;
    // find bounding lats and lngs
    for (GeoPoint point : points) {
        nwLat = Math.max(nwLat, point.getLatitudeE6());
        nwLng = Math.min(nwLng, point.getLongitudeE6());
        seLat = Math.min(seLat, point.getLatitudeE6());
        seLng = Math.max(seLng, point.getLongitudeE6());
    }
    GeoPoint center = new GeoPoint((nwLat + seLat) / 2, (nwLng + seLng) / 2);
    // add padding in each direction
    int spanLatDelta = (int) (Math.abs(nwLat - seLat) * 1.1);
    int spanLngDelta = (int) (Math.abs(seLng - nwLng) * 1.1);

    // fit map to points
    mapController.animateTo(center);
    mapController.zoomToSpan(spanLatDelta, spanLngDelta);
}

答案 1 :(得分:1)

使用itemized overlay

注意:对于大量积分(超过几百个),这通常非常慢。大型列表需要一些其他优化,例如找到一种方法只显示当前显示的地图部分内的点,等等。但对于短列表,它可以正常工作。