Как установить масштаб, чтобы он соответствовал кругу в Google Maps

У нас есть фильтр поиска по расстоянию. Он имеет окно просмотра карты, которое позволяет установить базовый маркер, и текстовое поле ввода, которое позволяет ввести расстояние в километрах.

Затем мы добавляем круг, чтобы показать это расстояние на карте. .

Как масштабировать карту, чтобы она соответствовала кругу?


person Sergey Romanov    schedule 19.03.2012    source источник


Ответы (2)


Для нескольких кругов используйте union вместо extend:

var bounds = new google.maps.LatLngBounds();

$.each(circles, function(index, circle){
    bounds.union(circle.getBounds());
});

map.fitBounds(bounds);
person Sabri Aziri    schedule 04.07.2014
comment
Хороший. Я использовал это, чтобы гарантировать, что по крайней мере окружность радиуса поиска охвачена, а затем расширил границы для любых маркеров дальше с помощью latlngBounds.extend(marker.getPosition()) - person Jon; 05.08.2016

У google.maps.Circle есть метод getBounds(), который возвращает LatLngBounds круга. Вы можете использовать эти границы в качестве аргумента для google.maps.Map.fitBounds()

Если вы используете круг, вы можете сделать это:

map.fitBounds(circle.getBounds());

... в конце функции инициализации.

http://jsfiddle.net/doktormolle/MHLjy/

person Dr.Molle    schedule 19.03.2012
comment
Это просто. Спасибо. Я использовал map.fitBounds(), но не заметил, что у круга есть getBounds. Очень хорошо :) - person Sergey Romanov; 19.03.2012
comment
Это должно быть принято как ответ на этот вопрос - person 4unkur; 13.01.2019