Как сделать так, чтобы весь список GeoPoint отображался на картах Google? - PullRequest
1 голос
/ 08 августа 2010

У меня есть неопределенное количество GeoPoint, я хочу показать их все на картах Google. Я не знаю, как это сделать. спасибо!

Ответы [ 2 ]

3 голосов
/ 26 августа 2010
    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 голос
/ 08 августа 2010

Использовать детализированное наложение .

Примечание : обычно это очень медленно для большого количества точек (более нескольких сотен). Большие списки требуют некоторых других оптимизаций, таких как поиск способа показа только точек внутри отображаемой в данный момент части карты и т. Д. Но для коротких списков это работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...