¿Qué sigue si nuestro KML es demasiado grande / complejo para la API de Google Maps? [cerrado]


29

Nuestra aplicación web incluye capacidades de mapeo simples (actualmente solo marcadores y superposiciones KML en un mapa de Google incrustado). Esto funciona bastante bien; La única limitación real que enfrentamos son las superposiciones de KML que van más allá de las restricciones de complejidad y tamaño de Google para KML .

Estamos considerando poner en pie nuestro propio servidor (por ejemplo, GeoServer o ArcGIS Server); pero eso parece un gran paso solo para servir (por ejemplo) 15 MB de KML cuando el límite de Google es de 10 MB.

Necesito un control de la cordura: ¿Hay algún punto intermedio entre la API fácil y gratuita de Google para superposiciones KML y la configuración de mi propio servidor de mosaico?


55
divida su KML en 2 archivos KML más pequeños: encienda y apague opcionalmente los datos que no necesita.
Mapperz

1
uso opcional de tablas de fusión (límite de fila de 100k o 100mb en datos) - gmaps-samples.googlecode.com/svn/trunk/fusiontables/… ver groups.google.com/group/fusion-tables-users-group/browse_thread/…
Mapperz

@mapperz Solo puede cargar 100 MB de datos a la vez, pero luego puede importar más filas a la misma tabla de hasta 250 MB de almacenamiento.
geographika

Aunque veo que ya lo sabías
geographika

El servicio Fusion Tables se cerrará el 3 de diciembre de 2019, por lo que la opción que veo es hacer que los archivos kml sean más pequeños con el software: el escritorio QGIS. También hay qgis python library. Utilicé el escritorio QGIS con la opción Simplificar geometría usando 0.0005. Luego exporto la capa creada como kml. También puede hacer esto como trabajo por lotes desde el mismo menú. Luego puede abrir todas las capas creadas en un proyecto separado y usar la consola dentro del escritorio QGIS para convertir todos los archivos .shp a .kml
makkasi

Respuestas:


12

Como ya ha invertido en el desarrollo de Google Maps, le sugeriría encarecidamente que inserte todos los datos en Google Fusion Tables, que luego se pueden analizar en el mapa de manera similar a KML con un rendimiento increíble (consulte la aplicación WNYC Fusion Tables ). Considérelo una actualización a KML sin tener que modificar drásticamente el front-end.


Creo que esta es una gran idea si sus datos no están en un horario de actualización> 24 horas. Esto es lo que Google nos acaba de decir (si kml está ralentizando el navegador, use tablas de fusión) para hacerlo, diría que esta es la mejor respuesta.
Steve

1
Gracias por señalar Fusion Tables, de alguna manera esto se me escapó totalmente de la atención, muy bien. Desafortunadamente, sería un poco torpe trabajar con datos que cambian con frecuencia; y las limitaciones generales de almacenamiento (250 MB por usuario) no nos permitirían escalar.
Herb Caudill

2
Tenga en cuenta que el servicio experimental Fusion Tables se cerrará el 3 de diciembre de 2019.
Jonas

12

Puede dividir su KML en varios KML con un KML principal que haga referencia a los kmls más pequeños. Al menos, esto reducirá el tamaño de sus archivos a un nivel respetable y le permitirá hacer referencia a conjuntos de datos mucho más grandes como KML.

Honestamente, KML solo es bueno para pequeños conjuntos de datos con pocas características y atributos asociados. No me acercaría a él como fuente de datos de archivo. Si observa que estos archivos se hacen más grandes, miraría otro tipo de datos, o definitivamente iría por la ruta GeoServer / MapServer para los conjuntos de datos distribuidos.


2
Pero Network KML (con Superoverlays está diseñado para grandes conjuntos de datos) pero requiere un servidor web y un software de renderizado Geoserver hace un buen trabajo con este tipo de KMZ: funciona mejor con Google Earth ya que la API de Google Maps ha restringido el uso de KML.
Mapperz

Nunca tuve mucha suerte con las superposiciones, excepto con Google Earth Enterprise Client. Aunque no pasé mucho tiempo con esto. Definitivamente una opción para explorar, +1 @Mapperz
OptimizePrime

1
Usa GeoServer con Oracle y funciona muy bien al procesar KMZ (superoverlay): los datos en vivo (constantemente actualizados) que son muy útiles para los usuarios, tuvieron que ajustar el geoserver para acelerar la actualización.
Mapperz

8

Si no ha invertido demasiado tiempo en su API de Google Maps, puede cambiar a OpenLayers, que tiene un analizador KML del lado del cliente que puede leer sus propios archivos KML; consulte el siguiente ejemplo:

http://openlayers.org/dev/examples/kml-layer.html

Sin embargo, para un archivo de 15 MB, esto probablemente detendría el navegador. Probablemente también sea bastante lento a través de los servidores de Google cuando te acercas al límite de tamaño de archivo.

¿Existe realmente la necesidad de un nivel de detalle de 15 MB o podría simplificar el KML sin perder demasiada información?

¿Necesita acceder al vector / geometría en el lado del cliente? ¿Se podrían servir estos datos como imágenes?

Si ninguno de estos es posible, tendrá que mirar algún tipo de software de servicio de mapas. Junto con GeoServer de ArcGIS Server, puede considerar que MapServer sirva el KML o como WFS. El beneficio de usar un servidor de mapas es que las solicitudes solo devolverán los datos dentro del mapa, reduciendo el tráfico de red y disminuyendo los tiempos de carga.


Después de probar las tablas de Google Fusion, el enfoque de Guddie es, con mucho, el más fácil de implementar. Solo puede cargar 100 MB de KML a la vez, pero cada usuario tiene una opción de almacenamiento de 250 MB (en el momento de la escritura).
geographika

2

Si está utilizando la versión 3, podría eliminar toda la información de los atributos, excepto un identificador único y solicitar la información a través de llamadas ajax a un servicio web cada vez que un usuario haga clic en una función. Si tiene más de 10 MB de puntos, probablemente sea una buena idea hacer algún tipo de agrupación en lugar de mostrar todos esos puntos a la vez. También puede separar sus superposiciones de tierra en archivos KML separados.



2

MapLarge tiene una solución interesante: pueden replicar sus datos en sus servidores y luego hacer el trabajo pesado de generar mosaicos sobre la marcha utilizando su software patentado. Ofrecen API de Javascript que luego pueden superponerse en mapas base de Google Maps, OpenLayers, etc.

Mira algunos de sus ejemplos: la velocidad es impresionante:

No es gratis, pero podría ser una buena opción para alguien que no quería el problema y el gasto de poner de pie un servidor separado para generar estas capas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.