Увеличьте группу точек в MapActivity (ItemizedOverlay) в Android - PullRequest
0 голосов
/ 24 ноября 2010

Если я хочу, чтобы все мои POI были видны на карте, мне нужно динамически настроить два параметра:

  • Центр-фокус карты
  • Шаг масштабирования

Мне интересно, есть ли такое поведение, уже встроенное в MapActivity?Если нет, не могли бы вы предоставить пример кода?

1 Ответ

0 голосов
/ 27 октября 2011

Ответ не в том, чтобы найти центральную точку среди группы точек, а затем вызвать 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);

...