Estoy trabajando en un software que está muy orientado a ESRI, pero una versión futura probablemente no utilizará el software de ESRI. Utiliza Shapefiles y Geodatabases. Estoy planeando llevar todos mis datos a Shapefiles en anticipación para futuras versiones del software que probablemente estarán en Android y otros dispositivos móviles. Parece que los Shapefiles son el tipo de datos más común para las funciones en el mundo SIG de código abierto, pero ¿cuáles son los demás y qué beneficios aportan? Estoy familiarizado con GeoJSON y KML, pero estoy seguro de que hay otros.
Me gustaría conocer todas las opciones, pero estoy particularmente interesado en los tipos de conjuntos de datos más adecuados para almacenar en dispositivos móviles (los datos deben ser accesibles sin una conexión a Internet).
fuente
Respuestas:
Como dice @ user890, esto depende en gran medida de cómo se utilizarán los datos. Principalmente hay dos formas de acceder a los datos:
Los formatos como GeoJSON y KML son los más adecuados para casos en los que desea cargar todo de una vez. Los beneficios son que los datos pueden estructurarse de una manera más adecuada para su aplicación. Los inconvenientes: tamaños de archivo más grandes (ya que están basados en texto) y la imposibilidad de realizar consultas eficientes directamente desde el archivo.
SQLite / Spatialite es mejor para las consultas (SQL), pero es más difícil estructurar los datos: debe aplanar todo en tablas de base de datos y luego unir (lo que puede ser costoso) al realizar consultas.
Realmente no hay un formato de archivo perfecto que cubra todo (pero, de nuevo, los archivos de forma están lejos, lejos de ser perfectos). Una alternativa a considerar es crear su propio formato específico de aplicación, pero esto solo funciona si no necesita compartir los datos con el mundo exterior.
fuente
Creo que la lista de formatos vectoriales de OGR (enlace actualizado) identifica casi todos los formatos de código abierto de los que he oído hablar, y muchos más. Cada uno de esos formatos tiene sus propias ventajas / desventajas, por lo que es difícil decir cuál es el "mejor". Para las aplicaciones móviles, imagino que el tamaño del archivo será uno de los factores decisivos más importantes.
Para las aplicaciones móviles, creo que el formato sqlite / spatialite sería el formato lógico para comenzar. Sé que Android proporciona soporte nativo para sqlite. Entonces, suponiendo que pueda cargar las extensiones de spaceialite, tendrá un gis muy potente disponible para usted.
Dependiendo de lo aventurero que seas, parecería que construir gdal para Android no es imposible. Entonces podría tener muchos más formatos a su disposición. Estoy seguro de que muchos usuarios en este sitio estarían interesados si siguieras esta ruta.
fuente
Un nuevo formato que ha surgido recientemente es el Geopackage . Esta especificación se basa en la base de datos SQLite, por lo que tiene la misma base de un solo archivo, pero con el beneficio adicional de ser un estándar OGC .
En cuanto al tamaño del archivo, es probable que el formato de almacenamiento sea más compacto que el formato
.shp
y.dbf
para los datos espaciales y de atributos utilizados en el Shapefile. Por lo tanto, es probable que el GeoPackage sea del mismo tamaño, o más pequeño, que la totalidad de las mismas características en un archivo de forma.Esta foto muestra una red de alcantarillado en San Diego guardada como Shapefile y GeoPackage. Como puede ver, son esencialmente del mismo tamaño.
Dado que este formato se basa en SQLite, debe estar listo para dispositivos móviles. Muchas aplicaciones ya usan este formato de base de datos para el almacenamiento, por lo que es una tecnología probada. Se puede usar multiplataforma sin necesidad de traducción.
fuente
De acuerdo con Lennert, elija el formato correcto para el trabajo.
Sin embargo, he encontrado que Spatialite es un formato bastante versátil. Tiene el archivo único que le brinda la flexibilidad de almacenar y compartir datos como un archivo de forma, pero niega los problemas que menciona con los límites de caracteres; mientras le da la oportunidad de explotar los beneficios de una base de datos espacial.
Desafortunadamente, no es totalmente compatible con ArcGIS (no lo he intentado en un tiempo, así que podría estar equivocado), pero funciona muy bien en QGIS.
fuente
Hay muchos formatos diferentes y lo mejor depende de su conjunto de datos que tenga, las herramientas que use y las cosas que desea hacer con él.
Algunos de los que uso:
Geodatabase de archivos y bases de datos espaciales: una imitación que me gusta usar. Puede contener todo tipo de datos y tener relaciones, indexación ... Utilizo gdb cuando trabajo en un entorno Esri, espacial para cualquier otra cosa.
GeoJson: formato fácil de leer que generalmente uso para conjuntos de datos pequeños que no requieren mucho en cuanto a indexación
Bases de datos adecuadas: tiendo a usar esto para conjuntos de datos masivos y algoritmos complejos.
Pero también hay toneladas de otros.
fuente
Recomendaría usar la base de datos SQLite / spatiallite. Es un archivo único como geodatabase (una a muchas tablas / capas dentro) y se puede usar en ArcGIS Desktop y QGIS.
fuente
Las opciones realmente dependen del idioma que usará y de cómo se usarán los datos. Es muy probable que Android sea Java. Cada opción será una especie de comparación costo / beneficio basada en esa decisión. Todos los formatos de datos están optimizados para ciertos casos de uso.
La siguiente pregunta es cómo se usarán los datos. ¿La aplicación móvil solo leerá datos espaciales? ¿O será leer y escribir datos con frecuencia? ¿Con qué frecuencia intercambiará datos con otros dispositivos o servidores?
fuente