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());
});
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
Ho aggiornato la risposta. Ora è possibile ottenere la mappa immediatamente centrata sulla posizione dei marker nel livello kml. – Tomik
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