2014-04-08 14 views
20

Ho una mappa di volantini che esegue panoramica e zoom. Come posso ottenere in modo dinamico il lat/long dei bordi della mappa (dopo lo zoom in/out + panning)?Prendi il riquadro di delimitazione della mappa del volantino visibile?

+1

Intendi i limiti/le estensioni della mappa? O ogni lat che corre lungo il confine delle estensioni? Se vuoi solo ottenere i limiti puoi chiamare un map.getBounds() su dragend. map.on ('dragend', myFunctionThatGetsMapBounds()) Vorrei provare qualcosa del genere per ottenere i limiti ogni volta che viene spostata la mappa. Lo stesso può essere fatto per lo zoom. – Ju66ernaut

risposta

29

Si tratta, come si può immaginare:

map.getBounds(); 

Se si desidera ottenere i limiti dopo il panning e zoom, utilizzare events, come

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

La risposta di cui sopra è corretta, ma non molto utile e, sfortunatamente, i documenti del volantino non forniscono molti dettagli sulla chiamata getBound().

Se si aggiunge questo alla mappa funzione init, è possibile vedere i dati delle mappe visualizzate:

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

notare che le dimensioni sono le dimensioni in pixel della finestra di mappa, dove i limiti sono le dimensioni interne scalati. Prova a fare lo zoom e vedrai che la dimensione rimane costante, ma l'altezza e con il doppio per ogni livello di zoom.

Ci sono molti metodi che vivono sotto l'oggetto LatLngBounds, quindi dovresti essere in grado di trovare una delle chiamate che possono darti qualunque informazione tu stia cercando.

Speranza che aiuti qualcuno a uscire.

Problemi correlati