Este es un tema que siempre surge. Puede que no tenga la respuesta correcta, pero puedo dar mi opinión personal opinión .
La razón por la que se apoyan, se puede atribuir a varias características sobre ellos, así que permítanme mencionar algunas.
-
Primero, existe una especificación . Es decir, tengo treinta y pocos años y esta cosa existe desde que era un adolescente. Así que se puede decir que esta especificación ha existido durante algún tiempo. Por supuesto, hay otros formatos que también se publican, pero la diferencia de éste es que...
-
Es relativamente sencillo. Se construye sobre del formato DBF que en su momento ya existía y era ampliamente soportado en varias plataformas/OS. Ya existían analizadores sintácticos que podían leer la mitad de este formato (la parte DBF), por lo que facilitó el soporte de la adición extra. ¿Tienes una geometría? Claro, sólo hay que serializarla y escribirla. Y ya está. Contrasta esto con un cobertura ¡! Intenta explicar a alguien en términos sencillos lo que una topología limpia hace . No es trivial escribir una cobertura topológicamente limpia.
-
Lo más importante es que creo que la razón número uno para que los shapefiles sigan siendo populares es que son compatibles tanto con los sistemas de código abierto como con los propietarios . ¿Qué SIG conoces que no soporte shapefiles? Inaudito.
En sustitución, oímos hablar de Archivo GeoDatabases y Spatialite . Ambos formatos son muy superiores en términos de funcionalidad, flexibilidad, velocidad, etc. en comparación con los Shapefiles. A su manera, tienen ciertas cosas que los hacen mejores que el otro en diferentes áreas, pero una comparación de spatialite y FileGDB está ciertamente fuera del alcance de esta pregunta.
¿Creo que alguno de estos formatos sustituirá a los Shapefiles? No en sus encarnaciones actuales .
¿Por qué?
No por un argumento tecnológico (al fin y al cabo dije que eran superiores en ese aspecto), sino por otra cosa: las licencias.
¿Cuáles son sus problemas?
ArchivoGDB :
FileGDB proporciona interoperabilidad a través de la nueva API de FileGDB. No obstante, esta API se proporciona en formato binario por ESRI. No se trata de una especificación. Habiendo trabajado en el equipo de la Base de Datos Geoeléctrica en el pasado, puedo decir, en contra de todos los teóricos de la conspiración con sombrero de hojalata, que esto no es malicioso en absoluto. Se debe a que los componentes internos de la Base de Datos Geográfica cambian en cada versión. Publicar una especificación completa implicaría básicamente dar todos los detalles de cómo se supone que se mantiene todo y luego documentar cuidadosamente los cambios en el formato con cada versión anual. No tiene sentido. Así que la API de FileGDB, aunque no es una especificación, abstrae todos esos pequeños cambios. Y ahora se puede utilizar en todas las plataformas. Eso sí, ¡es un gran paso adelante! Teniendo en cuenta la naturaleza conservadora de ESRI, esto es definitivamente una reacción en la dirección correcta.
Sin embargo, el soporte sólo binario no hace muy feliz a nadie en el mundo del código abierto. ¿Cómo se puede entonces aprovechar la portación de algún código para decir a algún otro sabor de Linux si ESRI no lo soporta? No se puede. Esto es lo que hace que el Código Abierto sea poderoso, y ahora, no puedes aprovecharte de esto. Si ESRI decide dejar de dar soporte a Debian, eso es todo. Estás acabado. Y no hay nada que puedas hacer para cambiarlo.
Spatialite :
Spatialite es impresionante porque obtiene toda la funcionalidad gratuita de SQLite . SQLite se utiliza en todas partes. Está en tu teléfono Android, en tu iPhone/iPad, en Firefox, en Google Chrome, en varios dispositivos comerciales embebidos podría seguir así. Para convertirlo realmente en un geoformato (y no sólo hacer tontas operaciones de caja delimitadora), tiene que aprovechar la misma biblioteca de geometría que utiliza PostGIS: GEOS . Lamentablemente, GEOS se basa en otra biblioteca de geometría aún más impresionante conocida como STC . Todos los algoritmos del STC son extremadamente potentes, así que ¿cuál es el problema?
Bueno, el STC tiene licencia de código abierto LGPL y la LGPL es una licencia viral . JTS es LGPL, significa GEOS es LGPL, significa spatialite vinculado estáticamente con GEOS es LGPL. Esto apesta. ¿Por qué? Sin explicación de las licencias de código abierto demasiado, puedo decirte que, por ejemplo, no puedo usar spatialite en, digamos, una aplicación de iPhone porque eso haría que toda mi aplicación fuera automáticamente de código abierto (iOS sólo permite el enlace estático). Cualquier tipo de licencia GPL (razonablemente) asusta a ESRI, por lo que no la tocarán ni con un palo de 10 pies. Por lo tanto, ArcGIS, el sistema GIS más popular del mundo no soporta (y probablemente nunca lo hará) spatialite de forma nativa. Esto lo elimina automáticamente como formato viable.
Y así volvemos a los cutres shapefiles que se admiten en todas partes.
Actualización :
Al parecer, mi respuesta fue lo suficientemente controvertida como para que alguien decidiera que estaba bien editar libremente y cambiar todo el sentido de mi respuesta para poner su punto de vista. Por favor, no lo hagas. Si no estás de acuerdo conmigo, no pasa nada, simplemente publica tu opinión en una respuesta diferente y deja que la comunidad decida. He vuelto a editar mi respuesta para mostrar el significado original. Estoy añadiendo esta actualización en caso de que hayas leído la respuesta editada que afirmaba que sqlite era un formato viable.