Подтвердить что ты не робот

Получить рамку видимой карты буклетов?

У меня есть карта листовка, в которой отображаются панорамирование и масштабирование. Как я могу динамически получить lat/long краев карты (после увеличения/уменьшения + панорамирования)?

4b9b3361

Ответ 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, поэтому вы должны быть в состоянии найти там один из вызовов, который может дать вам любую информацию, которую вы ищете.