2012-03-21 23 views
11

¿Hay alguna forma de que pueda usar un archivo KMZ en Google Maps? Mi archivo KML tiene alrededor de 10.7MB por lo que no se carga en Google Maps. El archivo KMZ tiene alrededor de 2MB. La única forma en que lo veo es tener varios KML pero es demasiado trabajo. Podría terminar haciéndolo, pero me preguntaba si se puede usar KMZ.Uso de archivos KMZ en Google Maps

Gracias.

Respuesta

16

Sí, puede especificar un archivo KMZ mediante la API de Mapas:

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

En su caso específico, la secuencia de comandos debe tener este aspecto:

<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> 

PERO - KML, es demasiado grande . A pesar de que está comprimido a 2MB como KMZ, Maps observa el tamaño una vez descomprimido, y en su caso es más grande que 10MB. Intenta reducirlo un poco; si reemplazas tu KMZ URL por la que está en el primer fragmento de arriba, funcionará. Parece que necesitarás usar varios archivos KML. Quizás pueda cargar el KMZ en Google Earth, luego guarde cada provincia como su propio archivo (haga clic derecho en la carpeta en la pestaña "Lugares" de la Tierra y seleccione Guardar como ...)

+0

en su código, el mapa no se haya declarado una variable global, por lo que cuando lo llamas, aparece una excepción: Unbeught ReferenceError: map no está definido. Debe poner var map; antes de la inicialización de la función() { –

+0

Parece que KMZ no ayudará en este caso - todavía hay una restricción de tamaño en el archivo KML descomprimido de KMZ: https://developers.google.com/kml/documentation/mapsSupport –

+1

@MikeJeffrey Soy muy nuevo en JavaScript, y he hecho lo que dijiste, pero ahora mi mapa no se está cargando. De hecho, obtuve todo el fragmento de código de la documentación de Google Maps v3. – mapr

2

Sí, puede especificar un KMZ que de la misma manera debe especificar un archivo KML incluso se puede establecer dos cosas al mismo tiempo de aviso cómo nada cambia excepto por el nombre y la extensión de archivo de datos variables:

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