2011-11-18 6 views

risposta

38

Per impostazione predefinita, la mappa è stata centrata e ingrandito per il rettangolo di selezione del contenuto del livello kml.

È possibile modificare il comportamento predefinito con la proprietà preserveViewport dell'oggetto google.maps.KmlLayerOptions. Se lo imposti su true, la mappa non è centrata e ingrandita.

Nel esempio, utilizzare:

var nyLayer = new google.maps.KmlLayer(
        'http://www.searcharoo.net/SearchKml/newyork.kml', 
        { 
         suppressInfoWindows: true, 
         map: map, 
         preserveViewport: true 
        }); 

Se si desidera centrare e ingrandire il contenuto del livello kml tardi, uso:

var bounds = nyLayer.getDefaultViewport(); 
map.fitBounds(bounds); 

EDIT:

Se si desidera che la mappa sia sempre centrata (ma non ingrandita) quando viene caricato il layer kml, utilizzare l'evento defaultviewport_changed dello google.maps.KmlLayer o bject. Devi impostare il centro della mappa al centro della vista predefinita del livello kml. L'evento viene attivato quando vengono caricati i contenuti del livello kml e viene calcolata la vista predefinita.

google.maps.event.addListener(nyLayer, 'defaultviewport_changed', function() { 
    var bounds = nyLayer.getDefaultViewport(); 
    map.setCenter(bounds.getCenter()); 
}); 
+0

Grazie, ma quando ho impostato un livello di zoom più elevato dico 18, i marcatori dont diventano visibili, o essi non compaiono affatto o ho bisogno di centrare loro per renderli visibili, come faccio sempre fare in modo che gli indicatori compaiono sulla mappa vicino al centro – Mike

+0

Ho aggiornato la risposta. Ora è possibile ottenere la mappa immediatamente centrata sulla posizione dei marker nel livello kml. – Tomik

+0

In realtà ho determinati indicatori sulla mappa a seconda della posizione, a caricamento della pagina, dovrei essere in grado di vedere tutti i marcatori e se clicco da qualche parte vicino a un mercato particolare, voglio che si ingrandisca. Inoltre ho aggiornato il codice, ma sembra che stia prendendo il file js sbagliato: http://jsfiddle.net/WPXWX/1/ – Mike

Problemi correlati