Автоматическая установка уровня масштабирования на карте Google в Android

Привет, я использую карту Google в Android. Где я рисую линию между двумя GeoPoints. Мне нужно динамически устанавливать уровень масштабирования по мере увеличения или уменьшения расстояния между двумя точками.

Жду твоего ответа


person Altaf    schedule 25.04.2011    source источник
comment
я не знаком с картами Google в Android, но в версии JavaScript, если вы используете LatLngBounds для хранения своих точек, вы можете использовать map.fitBounds(bounds:LatLngBounds);, и он автоматически настроит ваш вид на основе точек LatLngBounds.   -  person KJYe.Name 葉家仁    schedule 25.04.2011
comment
Вот отличный ответ Reno: stackoverflow.com/a/5242149/1839565   -  person Defoncesko    schedule 24.01.2013


Ответы (2)


Используйте zoomToSpan() на MapController. Вычислите пролет на основе расстояний между вашими точками. Если ваши точки не центрированы, либо примите это во внимание (увеличив желаемый диапазон), либо центрируйте карту.

person CommonsWare    schedule 25.04.2011

Я нашел подобное решение. Вы можете использовать CameraUpdateFactory.newLatLngBounds(LatLngBounds bounds, int padding)

Вот пример:

Builder boundsBuilder = LatLngBounds.builder();
ArrayList<LatLng> decodedPoints = (ArrayList<LatLng>) PolyUtil.decode(step);
for (LatLng point : decodedPoints) {
    boundsBuilder.include(point);
}
LatLngBounds bounds = boundsBuilder.build();
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, 10);
map.moveCamera(cameraUpdate);
person dahec    schedule 22.03.2014