gis - shp - Cargando un archivo local.kml usando google maps?
shapefile google earth pro (3)
Creé un programa hello world para cargar un archivo KML local (prestado de los documentos de google):
var ctaLayer = new google.maps.KmlLayer("http://localhost:8080/kml/cta.kml");
Esto no funciona (nada se carga).
Sin embargo, cuando cambio esa línea a:
var ctaLayer = new google.maps.KmlLayer("http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml");
se carga correctamente Ambos archivos kml son idénticos. ¿Qué debo hacer para que se cargue cuando lo sirva yo mismo? (Intenté caminos absolutos y relativos, y sé que los caminos que uso son correctos ...)
También agregué el tipo de mime correcto al archivo de configuración de mi servidor de aplicaciones:
<mime-mapping>
<extension>kml</extension>
<mime-type>application/vnd.google-earth.kml+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>kmz</extension>
<mime-type>application/vnd.google-earth.kmz</mime-type>
</mime-mapping>
Pero todavía no se carga.
Encontré esto en los docs de Google:
La API de Google Maps admite los formatos de datos KML y GeoRSS para mostrar información geográfica. Estos formatos de datos se muestran en un mapa utilizando un objeto KmlLayer, cuyo constructor toma la URL de un archivo KML o GeoRSS de acceso público.
Así que supongo que lo que estoy tratando de hacer no es posible sin servir el kml desde una url de acceso público ... a menos que alguien pueda probar lo contrario
Desafortunadamente no puedes usar "localhost". Tienes dos opciones:
- coloque el kml en un dominio disponible públicamente. (Si google no puede acceder a él, no funcionará)
- Usa geoxml3 que básicamente hace lo que hace Google pero te permite descargar y alojar el archivo JS del analizador. Le permitirá cargar un KML de LOCALHOST y analizarlo por usted (objetos accesibles a través de JSON) ( http://code.google.com/p/geoxml3/ ).
La opción n. ° 1 podría no ser una opción para aquellos que trabajan en contratos de defensa y que manejan información delicada, ya que el kml se envía a Google en segundo plano y se representa en el mapa.
No se puede acceder al archivo KML porque está en su equipo local y Google no puede acceder a él, ya que no sabe cómo llegar al servidor local: 8080
Este sitio web requiere que copie / pegue todo el archivo KML en el sitio web. Alternativamente, puede usar Dropbox para alojar el archivo KML usando su carpeta pública. Dentro de la carpeta pública de Dropbox hay un menú contextual con el botón derecho que le permite copiar la URL.