Как установить уровень масштабирования карты Google в соответствии с местоположением маркера - PullRequest
3 голосов
/ 01 декабря 2010

Я поместил два маркера на карту Google. Один в США, а другой где-то в Азии. Google дает только уровни масштабирования 1, 2, 3, 4, 5, 6 и т. Д.

Я не хочу жестко задавать уровень масштабирования. Как я могу отобразить все маркеры в зависимости от расстояния? То есть если два элемента находятся очень близко друг к другу или в одном городе, следует использовать близкий уровень масштабирования, а если они далеко друг от друга, то следует использовать максимальный уровень масштабирования.

Ответы [ 3 ]

1 голос
/ 22 апреля 2016

Вам нужно включить эти маркеры в ограничивающий прямоугольник, а затем использовать объект LatLngBounds ниже, чтобы установить камеру на него:

private void addMarkers() {
    MarkerOptions markerOptions = new MarkerOptions();
    LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder();

    //add the marker locations that you'd like to display on the map
    boundsBuilder.include(new LatLng(lat1, lng1));
    boundsBuilder.include(new LatLng(lat2, lng2));

    final LatLngBounds bounds = boundsBuilder.build();

    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, width, height, padding);
    map.animateCamera(cameraUpdate);
}
1 голос
/ 21 сентября 2016

Вы можете указать уровень масштабирования на месте и с уровнем масштабирования

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(37,
            -121), 6)); 

https://developers.google.com/maps/documentation/android-api/views

0 голосов
/ 01 декабря 2010

Что вы используете для создания своих карт?Я использую API GMap2 в моем проекте около 8 месяцев назад, и, похоже, мне просто нужно было вызвать «GDirections (map {{div}})»;ну, на карте div, чтобы он отображал маршрут между двумя точками и соответственно корректировал уровень масштабирования.

...