Zalety używania spatialite w porównaniu do pliku kształtu? [Zamknięte]

35

Uważam, że spatialite jest bardziej przydatny niż pliki shapefile, ponieważ nie ma ograniczeń pliku shapefile i jest przenośny. Wiele osób korzysta z plików shapefile do wymiany danych, a nawet eksperci nie wiedzą o tym nowym formacie.

Jakie są zalety używania spatialite w porównaniu do plików kształtów?

Czy można go używać zamiast pliku kształtu?

Skoncentruj się tylko na tych formatach, które są przenośne, tzn. Można je wymieniać za pomocą pamięci USB. GML, GeoJSON, KML, CSV nie są opcją i nie można ich edytować bezpośrednio w GIS.

AKTUALIZACJA: Minęło ponad 5 lat, a nowy rozwój ukierunkowany jest na geopakażenie związane z przestrzenią.

Więc teraz pytanie jest bardziej jak Zalety korzystania z GEOPACKAGE nad GEODATABASE?

neogeomat
źródło

Odpowiedzi:

27

Pliki kształtów są najniższym wspólnym mianownikiem wymiany plików danych wektorowych GIS: wyślij archiwum plików kształtów, a możesz prawie zagwarantować, że ktoś będzie w stanie zbudować z niego podstawowy GIS.

Zalety SpatiaLite obejmują:

  • wszystko jest w jednym pliku; żaden bałagan shp / shx / dbf / idx / prj na warstwę.
  • logika, jak również dane mogą być uwzględnione, w postaci WIDOKÓW i TRIGGERÓW.
  • wbudowane wskaźniki przestrzenne, które umożliwiają szybkie wyszukiwanie dużych obszarów.
  • są to rzeczywiste (choć nieco ograniczone, głównie w systemach z dostępem wielu użytkowników), bez umiejętności administratora bazy danych.

Ale są pewne wady:

  • nie każdy może z nich korzystać.
  • nadal są w większości ograniczone do geometrii zbudowanych z węzłów i linii prostych; jeśli potrzebujesz splajnów i powierzchni, poszukaj gdzie indziej.
szum
źródło
8
Dobry post, ale dwa punkty dotyczące indeksów przestrzennych. Pliki kształtów mogą być również indeksowane przestrzennie, a po drugie musisz jawnie dołączyć do przestrzennego indeksu przestrzennego, który może prowadzić do nieporęcznych zapytań. Nadal wolę przenosić dane w Spatialite DB, ale importuję je do bazy danych PostGIS, aby skorzystać z bardziej niezawodnego narzędzia do planowania zapytań.
HeyOverThere
22

Pliki kształtów są powiązane z jednym typem geometrii, więc dostajesz kilka plików dla jednego projektu. Nazwy pól są również ograniczone ze względu na użycie antykwaryjnego formatu bazy danych.

W programie spatialite możesz przechowywać całe dane projektu w jednym pliku; i nazwij pola tak, jak chcesz (cóż, prawie).

Jedyną wadą spatialite jest szybki cykl aktualizacji, który utrudnia odczyt lub zapis danych zapisanych w innej (starszej) wersji.

AndreJ
źródło
15

Oprócz odpowiedzi Scussa, pliki kształtów mają pewne ograniczenia:

  • maksymalna długość nazwy pola wynosi 10 znaków
  • maksymalny rozmiar pliku (.dbf / .shp) wynosi 2 GB
  • atrybuty numeryczne są przechowywane jako znaki (liczby całkowite / zmiennoprzecinkowe), powodując potencjalne problemy z zaokrąglaniem itp
  • Wartości NULL są różnie interpretowane w zależności od systemu
Oyvind
źródło
4

Największą zaletą jest dla mnie relacyjny system baz danych w jednym formacie. Wśród wielu korzyści jest wykorzystanie funkcji przestrzennych do tworzenia widoków. Rozważ przypadek, w którym otrzymałeś zestaw punktów, a twoja metodologia polega na buforowaniu punktów na podstawie atrybutu, a następnie przetestowaniu zbieżności tych buforów z innymi cechami geograficznymi. Korzystanie z tego przepływu pracy z plikami shapefile zwykle wymaga, aby każda operacja była utrwalana jako inny plik shapefile. Teraz, jeśli którykolwiek z podanych danych zostanie zaktualizowany, musisz ponownie uruchomić cały łańcuch. Nie wspominając o tym, że w niektórych środowiskach dane wejściowe można zmienić bez wiedzy użytkownika. Nie stanowi to problemu, gdy korzystasz z widoków SQL do operacji geometrii. (Wiem, że istnieją narzędzia, które rozwiązują ten problem z plikami kształtów, ale pytanie dotyczy bazy danych spatiaLite).

Scro
źródło
2

Wszystko, co znajduje się w jednym pliku, jest również wadą: znacznie trudniejsze do naprawienia, jeśli coś jest zepsute. Rozmiar pliku również wydaje się zaczynać od 3,7 MB, nawet w przypadku prawie pustych zestawów danych. Wydaje się również, że obsługują tylko pola tekstowe, całkowite i zmiennoprzecinkowe. Brak daty / godziny lub pól boolowskich. Przynajmniej podczas testowania w QGIS 1.8

Uffe Kousgaard
źródło
1
Spatialite ma typy daty / godziny, ponieważ ma typy dla wszystkiego: Typ danych daty i godziny .
scruss
2
„SQLite nie ma zarezerwowanej klasy pamięci do przechowywania dat i / lub godzin” cytowanej ze strony, do której prowadzi link. Tak, możliwe jest zapisanie czegokolwiek w polu tekstowym, ale nadal jest to tylko tekst, który musi zostać przeanalizowany, zanim będzie można wykonać matematykę.
Uffe Kousgaard
Nie, ty nie; możesz zadawać pytania takie jak select * where date < '1980-01-01'i robi matematyki dla ciebie.
scruss
co oznacza, że ​​tekst jest analizowany. Alternatywą jest zapisanie daty jako liczby zrozumiałej dla silnika. Bez ryzyka napotkasz 31 kwietnia lub inne nielegalne wartości. Tekst musi zostać przetłumaczony na liczbę, zanim operator <będzie mógł zostać zastosowany.
Uffe Kousgaard
1
@UffeKousgaard: W plikach .dbf, liczbach (liczbach całkowitych / liczbach zmiennoprzecinkowych) i czasach danych przechowywanych jako znaki, więc w przypadku parsowania pliki kształtów nie mają tu żadnej przewagi.
Oyvind