Android Google Maps - как установить уровень масштабирования (и центр) карты для отображения всех моих геообъектов? - PullRequest
0 голосов
/ 15 января 2012

Я использую Google API 2.2. Как мне установить уровень масштабирования (может быть и по центру) для отображения всех моих геообъектов из ArrayList или Array? Я должен зависеть от альбомной / портретной ориентации и, возможно, разрешения экрана?

Ответы [ 2 ]

1 голос
/ 15 января 2012

Полагаю, что вычисление min и max для широты / долготы не будет сложным в вашем массиве; -)

m_Map.getController().zoomToSpan(
        maxLatitude() - minlatitude(),
        maxLongitude() - minLongitude());
0 голосов
/ 15 мая 2013

Ниже приводится простой подход, которому я следовал: 1. Найти расстояние между двумя точками Geo.Используйте Loc1.distanceTo (Loc2), чтобы получить расстояние между ними.2. В зависимости от расстояния вы можете использовать приведенный ниже код для установки уровня масштабирования.Возможно, вам придется импровизировать над кодом ниже, чтобы поддерживать все размеры экрана.

if (fDistance> 0 && fDistance <= 0.5) {</p>

iZoomLevel = 18;

}else if (fDistance> 0.5 && fDistance <= 2) {</p>

iZoomLevel = 17;

} else if (fDistance> 2 && fDistance <= 3) {</p>

iZoomLevel= 15;

} иначе, если (fDistance> 3 && fDistance <= 10) {</p>

iZoomLevel = 14;

}, если еще (fDistance> 10 && fDistance <=50) {</p>

iZoomLevel = 11;

} else if (fDistance> 50 && fDistance <= 100) {</p>

iZoomLevel = 9;

}else if (fDistance> 100 && fDistance <= 300) {</p>

iZoomLevel = 8;

} else if (fDistance> 300 && fDistance <= 1000) {</p>

iZoomLevel= 7;

} иначе, если (fDistance> 1000 && fDistance <= 3000) {</p>

iZoomLevel = 5;

}, иначе, если (fDistance> 3000 && fDistance <=5000) {</p>

iZoomLevel = 4;

} else if (fDistance> 5000 && fDistance <= 10000) {</p>

iZoomУровень = 3;

}

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