Dies ist ein Thema, das immer wieder auftaucht. Möglicherweise habe ich nicht die richtige Antwort, aber ich kann Ihnen meine persönliche Meinung mitteilen .
Der Grund, warum sie unterstützt werden, kann auf mehrere Merkmale über sie zurückgeführt werden, lassen Sie mich einige erwähnen.
Erstens gibt es eine Spezifikation . Ich meine, ich bin Anfang dreißig und dieses Ding gab es, seit ich ein Teenager war. Man kann also mit Sicherheit sagen, dass es diese Spezifikation schon seit einiger Zeit gibt. Natürlich gibt es auch einige andere Formate, die veröffentlicht werden, aber der Unterschied zu diesem ist, dass ...
Es ist relativ einfach! Es baut auf dem DBF-Format auf , das zu diesem Zeitpunkt bereits existierte und auf mehreren Plattformen / Betriebssystemen weitgehend unterstützt wurde. Es gab bereits Parser, die die Hälfte dieses Formats (den DBF-Teil) lesen konnten, wodurch die Unterstützung des zusätzlichen Zusatzes vereinfacht wurde. Sie haben eine Geometrie? Sicher, serialisiere es einfach und schreibe es. Du bist fertig. Vergleichen Sie dies mit einer Berichterstattung ! Versuchen Sie, jemandem in einfachen Worten zu erklären, was eine Topologie-Bereinigung bewirkt . Es ist nicht trivial, eine topologisch saubere Berichterstattung zu schreiben.
Vor allem glaube ich, dass der Hauptgrund für die Beliebtheit von Shapefiles darin besteht, dass sie sowohl in Open Source- als auch in Proprietary-Systemen unterstützt werden . Welches GIS unterstützt keine Shapefiles?!? Unerhört.
Als Ersatz hören wir von File GeoDatabases und Spatialite . Beide Formate sind in Bezug auf Funktionalität, Flexibilität, Geschwindigkeit usw. Shapefiles weit überlegen. Auf ihre eigene Art haben sie bestimmte Dinge, die sie in verschiedenen Bereichen besser machen als andere, aber ein Vergleich von Spatialite und FileGDB ist sicherlich nicht in Frage zu stellen.
Glaube ich, dass eines dieser Formate Shapefiles ersetzen wird? Nicht in ihren aktuellen Inkarnationen .
Warum?
Nicht wegen eines technologischen Arguments (ich habe doch gesagt, dass sie in diesem Aspekt überlegen sind), sondern wegen etwas anderem: der Lizenzierung.
Also, was sind ihre Probleme?
FileGDB :
FileGDB bietet Interoperabilität über die neue FileGDB-API. Trotzdem wird diese API im Binärformat bereitgestelltvon ESRI. Dies ist keine Spezifikation. Nachdem ich in der Vergangenheit im GeoDatabase-Team gearbeitet habe, kann ich Ihnen sagen, dass dies, im Gegensatz zu allen Verschwörungstheoretikern, überhaupt nicht böswillig ist. Dies liegt daran, dass sich die Interna der GeoDatabase bei jeder Veröffentlichung ändern. Das Veröffentlichen einer vollständigen Spezifikation würde im Grunde bedeuten, alle Details darüber anzugeben, wie alles gewartet werden soll, und dann die Änderungen des Formats bei jeder jährlichen Veröffentlichung sorgfältig zu dokumentieren. Das ergibt keinen Sinn. Die FileGDB-API abstrahiert all diese kleinen Änderungen, auch wenn es sich nicht um eine Spezifikation handelt. Und jetzt kann es plattformübergreifend eingesetzt werden! Wohlgemerkt, das ist ein großer Schritt vorwärts! Angesichts des konservativen Charakters von ESRI ist dies definitiv eine Reaktion in die richtige Richtung.
Und dennoch macht die reine Binärunterstützung niemanden in der Open Source-Welt allzu glücklich. Wie können Sie dann den Vorteil nutzen, Code zu portieren, um ihn einer anderen Linux-Variante mitzuteilen, wenn ESRI dies nicht unterstützt? Das kannst du nicht. Das macht Open Source so mächtig, und jetzt können Sie das nicht mehr ausnutzen. Wenn ESRI beschließt, Debian nicht mehr zu unterstützen, ist das alles. Du bist fertig. Und es gibt nichts, was Sie tun können, um es zu ändern.
Spatialite :
Spatialite ist fantastisch, weil es die gesamte kostenlose Funktionalität von SQLite erhält . SQLite wird überall verwendet. Es ist auf Ihrem Android-Handy, auf Ihrem iPhone / iPad, in Firefox, in Google Chrome und auf mehreren kommerziellen Embedded-Geräten - kann für immer weitergehen. Um es wirklich in ein Geoformat zu verwandeln (und nicht nur dumme Bounding-Box-Operationen auszuführen), muss dieselbe Geometriebibliothek verwendet werden, die PostGIS verwendet: GEOS . Leider basiert GEOS auf einer weiteren, noch besseren Geometriebibliothek, die als JTS bekannt ist . Alle Algorithmen in JTS sind extrem leistungsfähig. Wo liegt also das Problem?
Nun, JTS ist als Open Source LGPL lizenziert und LGPL ist eine virale Lizenz . JTS ist LGPL, bedeutet, dass GEOS LGPL ist, bedeutet, dass Spatialite statisch mit GEOS LGPL verbunden ist. Das ist scheiße. Warum? Ohne zu viele Erklärungen zu Open-Source-Lizenzen zu machen, kann ich Ihnen sagen, dass ich beispielsweise nicht Spatialite für eine iPhone-App verwenden kann, da dadurch meine gesamte App automatisch Open Source wird (iOS erlaubt nur statische Verknüpfungen). Jede Art von GPL-Lizenz erschreckt (vernünftigerweise) den Mist von ESRI, und so werden sie ihn nicht mit einer 10-Fuß-Stange berühren. Daher unterstützt ArcGIS, das beliebteste GIS-System der Welt, Räumlichkeiten von Haus aus nicht (und wird dies wahrscheinlich auch nie tun). Dadurch wird es automatisch als funktionsfähiges Format gelöscht.
Und so kehren wir zu beschissenen Shapefiles zurück, die überall unterstützt werden.
Update :
Anscheinend war meine Antwort so kontrovers, dass jemand entschied, dass es in Ordnung sei , die gesamte Bedeutung meiner Antwort frei zu bearbeiten und zu ändern , um ihren Standpunkt darzulegen. Bitte tu das nicht. Wenn Sie mit mir nicht einverstanden sind, ist das völlig in Ordnung, posten Sie einfach Ihre Meinung in einer anderen Antwort und lassen Sie die Community entscheiden. Ich habe die Änderungen an meiner Antwort rückgängig gemacht, um die ursprüngliche Bedeutung zu zeigen. Ich füge dieses Update hinzu, falls Sie die bearbeitete Antwort lesen, in der behauptet wird, SQLite sei ein brauchbares Format.