У меня есть карта листовка, в которой отображаются панорамирование и масштабирование. Как я могу динамически получить lat/long краев карты (после увеличения/уменьшения + панорамирования)?
Получить рамку видимой карты буклетов?
Ответ 1
Это, как вы можете догадаться:
map.getBounds();
Если вы хотите получить границы после панорамирования и масштабирования, используйте events, например
map.on('moveend', function() {
alert(map.getBounds());
});
Ответ 2
Приведенный выше ответ является правильным, но не очень полезным, и, к сожалению, листовки не дают подробных сведений о вызове getBounds().
Если вы добавите это в функцию инициализации карты, вы сможете увидеть отображаемые данные карты:
map.on('dragend', function onDragEnd(){
var width = map.getBounds().getEast() - map.getBounds().getWest();
var height = map.getBounds().getNorth() - map.getBounds().getSouth();
alert (
'center:' + map.getCenter() +'\n'+
'width:' + width +'\n'+
'height:' + height +'\n'+
'size in pixels:' + map.getSize()
)});
Обратите внимание, что размер - это размеры в пикселях окна карты, где границы - это масштабированные внутренние размеры. Попробуйте увеличить, и вы увидите, что размер остается постоянным, но высота и удваивается для каждого уровня масштабирования.
Существует целый ряд методов, которые живут в объекте LatLngBounds, поэтому вы должны быть в состоянии найти там один из вызовов, который может дать вам любую информацию, которую вы ищете.