2014-04-08 7 views
20

Mam mapę ulotek, która patrzy i przybliża. W jaki sposób mogę dynamicznie uzyskać szerokość/szerokość krawędzi mapy (po powiększeniu/pomniejszeniu + panoramowaniu)?Zdobądź obwiednię widocznej mapy ulotek?

+1

Masz na myśli ograniczenia/zasięg mapy? Lub co długi czas, który biegnie dookoła granicy? Jeśli chcesz uzyskać ograniczenia, możesz wywołać metodę map.getBounds() podczas przeciągania. map.on ("dragend", myFunctionThatGetsMapBounds()) Chciałbym spróbować czegoś takiego, aby uzyskać granice za każdym razem, gdy mapa jest przenoszona. To samo można zrobić dla zoomend. – Ju66ernaut

Odpowiedz

29

Jest to, jak można się domyślić:

map.getBounds(); 

Jeśli chcesz uzyskać granice po panoramowanie i powiększanie, użyj events, jak

map.on('moveend', function() { 
    alert(map.getBounds()); 
}); 
7

Powyższa odpowiedź jest poprawna, ale nie bardzo pomocne i niestety, ulotki docs nie dają wiele szczegółów na temat wywołania getBound().

Jeśli dodać do swojej mapy funkcji init, można zobaczyć dane Mapa pokazuje:

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() 
    )}); 

Należy pamiętać, że rozmiar ma wymiary pikseli z okna mapy, gdzie granice są skalowane rozmiary wewnętrzne. Spróbuj powiększyć i zobaczysz, że rozmiar pozostaje stały, ale wysokość i z podwójnymi dla każdego poziomu zoomu.

Istnieje cały szereg metod, które żyją pod obiektem LatLngBounds, więc powinieneś być w stanie znaleźć jedno z połączeń, które może dać ci wszelkie informacje, których szukasz.

Mam nadzieję, że ktoś pomoże.