Pracuję nad oprogramowaniem, które jest bardzo zorientowane na ESRI, ale w przyszłej wersji prawdopodobnie nie będzie używać oprogramowania ESRI. Korzysta z Shapefiles i Geodat baz danych. Planuję przenieść wszystkie moje dane do Shapefiles w oczekiwaniu na przyszłe wersje oprogramowania, które prawdopodobnie będą na Androidzie i innych urządzeniach mobilnych. Wygląda na to, że Shapefiles są najczęstszym typem danych dla funkcji w świecie GIS typu open source, ale jakie są inne i jakie korzyści przynoszą? Znam GeoJSON i KML, ale jestem pewien, że istnieją inne.
Chciałbym poznać wszystkie opcje, ale szczególnie interesują mnie typy zestawów danych, które najlepiej nadają się do przechowywania na urządzeniach mobilnych (dane muszą być dostępne bez połączenia z Internetem).
źródło
Odpowiedzi:
Jak mówi @ user890, zależy to w dużej mierze od sposobu wykorzystania danych. Głównie istnieją dwa sposoby uzyskania dostępu do danych:
Formaty takie jak GeoJSON i KML najlepiej nadają się do przypadków, gdy chcesz załadować wszystko za jednym razem. Zaletą jest to, że dane można uporządkować w sposób bardziej odpowiedni dla Twojej aplikacji. Wady: większe rozmiary plików (ponieważ są oparte na tekście) i niemożność wydajnego wykonywania zapytań bezpośrednio z pliku.
SQLite / Spatialite jest lepszy do tworzenia zapytań (SQL), ale trudniej jest ustrukturyzować dane - musisz spłaszczyć wszystko w tabelach bazy danych, a następnie wykonać JOIN (co może być kosztowne) podczas zapytania.
Nie ma tak naprawdę idealnego formatu plików, który obejmowałby wszystkie (ale z drugiej strony pliki kształtów są dalekie, dalekie od ideału). Jedną z alternatyw do rozważenia jest wprowadzenie własnego formatu specyficznego dla aplikacji, ale działa to tylko wtedy, gdy nie trzeba udostępniać danych światu zewnętrznemu.
źródło
Myślę, że lista formatów wektorowych OGR (zaktualizowany link) identyfikuje prawie każdy format open source, o jakim kiedykolwiek słyszałem, i wiele innych. Każdy z tych formatów ma swoje zalety / wady, więc trudno powiedzieć, który z nich jest „najlepszy”. W przypadku aplikacji mobilnych wyobrażam sobie, że rozmiar pliku będzie jednym z ważniejszych czynników decydujących.
W przypadku aplikacji mobilnych sądzę, że format sqlite / spatialite byłby logicznym formatem na początek. Wiem, że Android zapewnia natywne wsparcie dla sqlite. Zakładając, że możesz załadować rozszerzenia przestrzenne, będziesz mieć do dyspozycji bardzo potężne gis.
W zależności od tego, jak ryzykowny jesteś, wydaje się, że zbudowanie gdal dla Androida nie jest niemożliwe. Można więc mieć do dyspozycji znacznie więcej formatów. Jestem pewien, że wielu użytkowników tej witryny byłoby zainteresowanych, gdybyś wybrał tę trasę.
źródło
Nowym formatem, który powstał niedawno, jest Geopackage . Ta specyfikacja jest oparta na bazie danych SQLite, więc ma tę samą bazę dla jednego pliku, ale ma dodatkową zaletę, że jest standardem OGC .
Jeśli chodzi o rozmiar pliku, prawdopodobnie format przechowywania jest bardziej zwarty niż format
.shp
i.dbf
format danych przestrzennych i atrybutów używanych w pliku Shapefile. Dlatego pakiet GeoPackage będzie prawdopodobnie tego samego rozmiaru lub mniejszy niż ogół tych samych elementów w pliku kształtu.To zdjęcie pokazuje sieć kanalizacyjną w San Diego zapisaną jako Shapefile i GeoPackage. Jak widać, są one zasadniczo tego samego rozmiaru.
Ponieważ ten format jest oparty na SQLite, powinien być gotowy na urządzenia mobilne. Wiele aplikacji korzysta już z tego formatu bazy danych do przechowywania, więc jest to sprawdzona technologia. Można go używać na wielu platformach bez konieczności tłumaczenia.
źródło
Zgadzam się z Lennertem, wybierz odpowiedni format zadania.
Jednak uznałem, że Spatialite jest dość uniwersalnym formatem. Pojedynczy plik daje elastyczność przechowywania i udostępniania danych, takich jak plik kształtu, ale negujesz wspomniane problemy związane z limitami znaków; dając jednocześnie możliwość korzystania z zalet przestrzennej bazy danych.
Niestety nie jest w pełni obsługiwany w ArcGIS (od niedawna nie próbowałem, więc mogę się mylić), ale działa świetnie w QGIS.
źródło
Istnieje wiele różnych formatów, a najlepsze z nich zależą od posiadanego zestawu danych, używanych narzędzi i rzeczy, które chcesz z nim zrobić.
Niektóre z tych, których używam:
Plik Geobaza danych i przestrzenne bazy danych: catchall, którego lubię używać. Może przechowywać wszelkiego rodzaju dane i mieć relacje, indeksowanie ... Używam gdb podczas pracy w środowisku Esri, przestrzennym do wszystkiego innego.
GeoJson: Łatwy do odczytu format, którego zwykle używam w przypadku małych zestawów danych, które nie wymagają wiele przy indeksowaniu
Właściwe bazy danych: zwykle używam tego do ogromnych zestawów danych i złożonych algorytmów.
Ale jest też mnóstwo innych.
źródło
Polecam korzystanie z bazy danych SQLite / spatiallite. Jest to pojedynczy plik, taki jak geobaza (jedna do wielu tabel / warstw w obrębie) i może być używany w ArcGIS Desktop i QGIS.
źródło
Opcje naprawdę zależą od używanego języka i sposobu wykorzystania danych. Android najprawdopodobniej będzie Java. Każda opcja będzie rodzajem porównania kosztów i korzyści na podstawie tej decyzji. Wszystkie formaty danych są zoptymalizowane dla określonych przypadków użycia.
Kolejne pytanie dotyczy sposobu wykorzystania danych. Czy aplikacja mobilna po prostu odczytuje dane przestrzenne? Czy będzie to częste odczytywanie i zapisywanie danych? Jak często będzie wymieniać dane z innymi urządzeniami lub serwerami?
źródło