Vorteile der Verwendung von Spatialite gegenüber Shapefile? [geschlossen]

35

Ich fand Spatialite nützlicher als Shapefiles, da es nicht die Einschränkungen von Shapefile aufweist und auch portabel ist. Viele Leute hier verwenden Shapefiles, um Daten auszutauschen, und selbst die Experten kennen dieses neue Format nicht.

Was sind die Vorteile von Spatialite gegenüber Shapefiles?

Kann es anstelle von Shapefile verwendet werden?

Bitte konzentrieren Sie sich nur auf die Formate, die portabel sind, dh mit USB-Sticks ausgetauscht werden können. GML, GeoJSON, KML, CSV sind keine Option und können nicht direkt in GIS bearbeitet werden.

UPDATE: Es sind mehr als 5 Jahre vergangen und die neue Entwicklung ist auf ein Geopaket gerichtet, das mit Spatialite zusammenhängt.

Jetzt ist die Frage also eher wie die Vorteile der Verwendung von GEOPACKAGE gegenüber GEODATABASE?

neogeomat
quelle

Antworten:

27

Shapefiles sind der kleinste gemeinsame Nenner beim Austausch von GIS-Vektordatendateien: Senden Sie ein Archiv mit Shapefiles, und Sie können so gut wie garantieren, dass jemand in der Lage ist, ein grundlegendes GIS daraus zu erstellen.

Zu den Vorteilen von SpatiaLite gehören:

  • alles ist in einer Akte; keine der shp / shx / dbf / idx / prj pro schicht durcheinander.
  • Sowohl Logik als auch Daten können in Form von VIEWs und TRIGGERs enthalten sein.
  • eingebaute räumliche Indizes, die eine schnelle Suche in großen Bereichen ermöglichen.
  • Es handelt sich um echte Datenbanksysteme (wenn auch nur geringfügig eingeschränkt, meistens mit Mehrbenutzerzugriff), für die keine Datenbankadministrationskenntnisse erforderlich sind.

Es gibt jedoch einige Nachteile:

  • nicht jeder kann sie benutzen.
  • Sie beschränken sich immer noch hauptsächlich auf Geometrien, die aus Knoten und geraden Linien aufgebaut sind. Wenn Sie Splines und Flächen benötigen, schauen Sie woanders hin.
scruss
quelle
8
Guter Beitrag, aber zwei Punkte zu räumlichen Indizes. Shapefiles können auch räumlich indiziert werden, und zweitens müssen Sie sich explizit einem räumlichen Spatialite-Index anschließen, was zu unhandlichen Abfragen führen kann. Ich ziehe es immer noch vor, Daten in einer Spatialite-Datenbank zu verschieben, sie jedoch in eine PostGIS-Datenbank zu importieren, um die Vorteile des stabileren Abfrageplaners zu nutzen.
HeyOverThere
22

Shapefiles sind an einen Geometrietyp gebunden, sodass Sie eine Reihe von Dateien für ein einzelnes Projekt erhalten. Die Feldnamen sind ebenfalls eingeschränkt, da ein antiquarisches Datenbankformat verwendet wird.

In Spatialite können Sie die gesamten Projektdaten in einer Datei speichern. und benenne die Felder wie du willst (na ja, fast).

Der einzige Nachteil von Spatialite ist der schnelle Aktualisierungszyklus, der das Lesen oder Schreiben von Daten in einer anderen (älteren) Version erschwert.

AndreJ
quelle
15

Neben der Antwort von scruss gelten für Shapefiles einige Einschränkungen:

  • Die maximale Länge des Feldnamens beträgt 10 Zeichen
  • Die maximale Dateigröße (DBF / SHP) beträgt 2 GB
  • numerische Attribute werden als Zeichen (Ganzzahlen / Gleitkommazahlen) gespeichert, was potenzielle Probleme mit der Rundung usw. verursacht
  • NULL-Werte werden zwischen Systemen unterschiedlich interpretiert
Oyvind
quelle
4

Der größte Vorteil für mich ist das relationale Datenbanksystem in einem einzigen Dateiformat. Zu den zahlreichen Vorteilen gehört die Verwendung räumlicher Funktionen zum Erstellen von Ansichten. Stellen Sie sich einen Fall vor, in dem Sie eine Reihe von Punkten erhalten haben und Ihre Methode darin besteht, die Punkte basierend auf einem Attribut zu puffern und dann die Übereinstimmung dieser Puffer mit anderen geografischen Merkmalen zu testen. Die Verwendung dieses Workflows mit Shapefiles erfordert normalerweise, dass jeder Vorgang als ein anderes Shapefile beibehalten wird. Wenn nun eine Ihrer angegebenen Daten aktualisiert wird, müssen Sie die gesamte Kette erneut ausführen. Ganz zu schweigen davon, dass in einigen Umgebungen die Eingabedaten ohne Ihr Wissen geändert werden können. Dies ist kein Problem, wenn Sie sich für Geometrieoperationen auf SQL-Ansichten verlassen. (Mir ist bewusst, dass es Tools gibt, die sich mit solchen Problemen bei Shapefiles befassen, aber die Frage betrifft die spatiaLite-Datenbank.)

Scro
quelle
2

Das alles in einer Datei zu sein ist auch ein Nachteil: Viel schwieriger zu reparieren, wenn etwas kaputt ist. Auch die Dateigröße scheint bei 3,7 MB zu beginnen, selbst bei fast leeren Datensätzen. Sie scheinen auch nur Text-, Integer- und Float-Felder zu unterstützen. Keine Datums- / Uhrzeit- oder Booleschen Felder. Zumindest beim Testen in QGIS 1.8

Uffe Kousgaard
quelle
1
Spatialite verfügt über Datums- / Uhrzeit-Typen, sofern es Typen für Folgendes gibt: Datums- und Uhrzeit-Datentyp .
Scruss
2
"Für SQLite ist keine Speicherklasse zum Speichern von Datums- und / oder Uhrzeitangaben vorgesehen", zitiert von der Seite, auf die Sie verlinken. Ja, es ist möglich, alles in einem Textfeld zu speichern, aber es ist immer noch nur Text, der analysiert werden muss, bevor Sie rechnen können.
Uffe Kousgaard
Nein, tust du nicht; Sie können Fragen wie select * where date < '1980-01-01'und es macht die Mathematik für Sie.
Scruss
was bedeutet, dass der Text analysiert wird. Die Alternative ist, dass das Datum als eine Nummer gespeichert wird, die vom Motor direkt verstanden wird. Ohne das Risiko, dass Sie den 31. April oder andere illegale Werte antreffen. Bei Text muss er in eine Zahl übersetzt werden, bevor der Operator <angewendet werden kann.
Uffe Kousgaard
1
@UffeKousgaard: In DBF-Dateien werden Zahlen (Ganzzahlen / Gleitkommazahlen) und Datumsangaben als Zeichen gespeichert. Daher haben Shapefiles beim Parsen hier keinerlei Vorteile.
Oyvind