15

sto cercando un modo per aggiornare (mettere a fuoco) la mappa se un indicatore si trova all'esterno della mappa. Per esempio se clicchi su un marcatore che non è nel tuo viewarea ... Marker 1: New York Marker 2: SanFransiscoAPI di Google Maps v3 recente la mappa su un marker

in V2 io faccio così ... ma per v3 il contieneLatLng ha bisogno di una liberia in più e non ha funzionato per me ... (vedi il mio altro post: Google Maps v3 map.getBounds().containsLatLng is not a function) è un altro modo per mettere a fuoco in una posizione di indicatore ??

aggiornamento:

 if ((!map.getBounds().contains(marker.getPosition())) & (showAllCategoryElements == 0)) { 
     var newCenterPointLng = (map.getBounds().getCenter().lng() + marker.getPosition().lng())/2; 
     var newCenterPointLat = (map.getBounds().getCenter().lat() + marker.getPosition().lat())/2; 

     map.panTo(marker.getPosition()); 
     //map.setCenter(new google.maps.LatLng(newCenterPointLat, newCenterPointLng)); 

     if (!map.getBounds().contains(marker.getPosition())){ 
      map.zoomOut(); 
     } 
    } 
+0

Stai chiedendo il codice che funziona nella versione 3 o nella versione 2? Hai entrambi i tag e il codice della versione 2. –

risposta

38

Il metodo che si desidera è contains(), non containsLatLng(). map.getBounds().contains(marker.getPosition())

Si potrebbe utilizzare il setCenter() o Panto() i metodi della mappa per centrare la posizione del marker: map.setCenter(marker.getPosition()) o map.panTo(marker.getPosition())

Quindi, se ho capito bene quello che si sta cercando di fare, dovrebbe apparire così:

if ((!map.getBounds().contains(marker.getPosition())) && (showAllCategoryElements == 0)) { //Note the double & 
    map.setCenter(marker.getPosition()); 
    //OR map.panTo(marker.getPosition()); 
} 
+0

con i tuoi suggerimenti l'ho cambiato (vedi la parte superiore del mio post) ... 'map.setCenter' non è richiesto se utilizzo' PanTo'? Ora ho un "un non definito" in "http://maps.gstatic.com/cat_js/intl/de_de/mapfiles/api-3/9/2/%7Bmain,geometry%7D.js file" – Jim

+0

codice aggiornato sopra. Potrebbe essere necessario pubblicare altro codice se si continua a ricevere un errore. – puckhead

Problemi correlati