2012-03-21 8 views
11

Esiste un modo per utilizzare un file KMZ in Google Maps? Il mio file KML è di circa 10,7 MB, quindi non viene caricato su Google Maps. Il file KMZ è di circa 2 MB. L'unico modo che vedo è di avere più file KML ma è troppo lavoro. Potrei finire per farlo, ma mi stavo solo chiedendo se KMZ può essere usato?Utilizzo dei file KMZ in Google Maps

Grazie.

risposta

16

Sì, è possibile specificare un file KMZ utilizzando l'API Maps:

var kmzLayer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekmz'); 
kmzLayer.setMap(map); 

Nel vostro caso specifico, lo script dovrebbe essere così:

<script type="text/javascript"> 
    function initialize() { 
    var myOptions = { 
     center: new google.maps.LatLng(58.33, -98.52), 
     zoom: 11, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    var kmzLayer = new google.maps.KmlLayer('http://xeenat.com/energy/data.kmz'); 
    kmzLayer.setMap(map); 
    } 
</script> 

MA - il KML è troppo grande . Anche se è compresso fino a 2 MB come KMZ, Maps analizza le dimensioni dopo che è stato decompresso e nel tuo caso è più grande di 10 MB. Prova a ridurlo un po '- se sostituisci il tuo URL KMZ con quello nel primo frammento sopra, funzionerà. Sembra che dovrai utilizzare più file KML. Forse potresti caricare KMZ in Google Earth, quindi salvare ogni provincia come proprio file (fai clic con il tasto destro sulla cartella nella scheda "Luoghi" di Earth e seleziona Salva come ...)

+0

nel codice, mappa non è dichiarato come una variabile globale, quindi quando la chiami, viene visualizzata un'eccezione: Uncaught ReferenceError: map is not defined. È necessario inserire var map; prima della funzione di inizializzazione() { –

+0

Sembra che KMZ non sia di aiuto in questo caso - c'è ancora una restrizione di dimensione sul KML non compresso da KMZ: https://developers.google.com/kml/documentation/mapsSupport –

+1

@MikeJeffrey Sono molto nuovo in JavaScript e ho fatto ciò che hai detto, ma ora la mia mappa non si sta caricando. In realtà ho ottenuto tutto lo snippet di codice dalla documentazione di Google Maps v3. – mapr

2

Sì, puoi specificare un KMZ il file nello stesso modo è necessario specificare un file KML si può anche impostare entrambi allo stesso tempo di preavviso come non cambia nulla tranne che per il nome e l'estensione del file variabile:

var kmz_Layer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekmz'); 
var kml_Layer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekml'); 
kml_Layer.setMap(map); 
kmz_Layer.setMap(map);