To temat, który zawsze się pojawia. Być może nie mam właściwej odpowiedzi, ale mogę wyrazić moją osobistą opinię .
Powód, dla którego są one obsługiwane, można przypisać kilku cechom na ich temat, więc wspomnę o kilku.
Po pierwsze, istnieje specyfikacja . Mam około trzydziestki i to istniało, odkąd byłem nastolatkiem. Można śmiało powiedzieć, że ta specyfikacja istnieje już od jakiegoś czasu. Oczywiście istnieje kilka innych formatów, które są również publikowane, ale różnica w tym jednym polega na tym, że ...
To jest stosunkowo proste! Jest zbudowany na bazie formatu DBF , który w tym czasie już istniał i był szeroko obsługiwany na kilku platformach / systemach operacyjnych. Były już parsery, które potrafiły odczytać połowę tego formatu (część DBF), więc ułatwiło to obsługę dodatkowego dodawania. Masz geometrię? Pewnie po prostu serializuj i napisz. Gotowe. Porównaj to z zasięgiem ! Spróbuj wyjaśnić komuś w prosty sposób, co robi czyszczenie topologii . Nie jest trywialne napisanie czysto topologicznego pokrycia.
Co najważniejsze, myślę, że głównym powodem, dla którego pliki kształtu są nadal popularne, jest to , że są one obsługiwane zarówno w systemach Open Source, jak i zastrzeżonych . Jaki wiesz GIS, który nie obsługuje plików kształtu?!? Niespotykane.
Jako zamiennik słyszymy o GeoDat bazach danych i Spatialite . Oba formaty są znacznie lepsze pod względem funkcjonalności, elastyczności, szybkości itp. W porównaniu z Shapefiles. Na swój sposób mają pewne rzeczy, które czynią je lepszymi od siebie w różnych obszarach, ale porównanie przestrzeni i FileGDB z pewnością nie wchodzi w zakres tego pytania.
Czy myślę, że którykolwiek z tych formatów zastąpi pliki Shapefiles? Nie w ich obecnych wcieleniach .
Dlaczego?
Nie z powodu argumentu technologicznego (powiedziałem przecież, że pod tym względem są lepsze), ale z powodu czegoś innego: licencjonowania.
Jakie są ich problemy?
FileGDB :
FileGDB zapewnia interoperacyjność dzięki nowemu API FileGDB. Niemniej jednak ten interfejs API jest dostarczany w formacie binarnymprzez ESRI. To nie jest specyfikacja. Pracując w przeszłości w zespole GeoDatabase, mogę ci powiedzieć, w przeciwieństwie do wszystkich teoretyków spiskowych noszących blaszany kapelusz, nie jest to wcale złośliwe. Jest tak, ponieważ elementy wewnętrzne GeoDatabase zmieniają się w każdym wydaniu. Publikacja pełnej specyfikacji wymagałaby zasadniczo podania wszystkich szczegółów dotyczących tego, jak wszystko powinno być utrzymywane, a następnie dokładnego dokumentowania zmian w formacie przy każdej corocznej wersji. To nie ma sensu. Dlatego API FileGDB, mimo że nie jest specyfikacją, wyodrębnia wszystkie te małe zmiany. A teraz można go używać na różnych platformach! Pamiętaj, to ogromny krok naprzód! Biorąc pod uwagę konserwatywny charakter ESRI, jest to zdecydowanie reakcja we właściwym kierunku.
A jednak wsparcie tylko binarne nie sprawia, że nikt w świecie Open Source jest zbyt szczęśliwy. Jak zatem skorzystać z przeniesienia jakiegoś kodu, aby powiedzieć innemu smakowi Linuksa, jeśli ESRI go nie obsługuje. Nie możesz To sprawia, że Open Source jest potężny, a teraz nie możesz z tego skorzystać. Jeśli ESRI zdecyduje się przestać wspierać Debiana, to wszystko. Gotowe. I nic nie możesz zrobić, aby to zmienić.
Przestrzenny :
Spatialite jest niesamowity, ponieważ oferuje wszystkie bezpłatne funkcje SQLite . SQLite jest używany wszędzie. Jest na telefonie z Androidem, iPhonie / iPadzie, Firefox, Google Chrome, na kilku komercyjnych urządzeniach wbudowanych - może trwać wiecznie. Aby naprawdę przekształcić go w Geoformat (a nie tylko wykonywać głupie operacje ograniczające), musi korzystać z tej samej biblioteki geometrii, z której korzysta PostGIS: GEOS . Niestety, GEOS opiera się na innej, jeszcze bardziej niesamowitej bibliotece geometrii znanej jako JTS . Wszystkie algorytmy w JTS są niezwykle wydajne, więc na czym polega problem?
Cóż, JTS jest licencjonowany jako Open Source LGPL , a LGPL jest licencją wirusową . JTS to LGPL, co oznacza, że GEOS to LGPL, oznacza, że przestrzennie powiązane statycznie z GEOS to LGPL. To jest do bani. Dlaczego? Bez zbytniego wyjaśniania licencji typu open source mogę powiedzieć, że na przykład nie mogę używać funkcji spatialite na, powiedzmy, aplikacji na iPhone'a, ponieważ to spowodowałoby, że cała moja aplikacja byłaby automatycznie open source (iOS umożliwia tylko statyczne łączenie). Jakikolwiek rodzaj licencji GPL (rozsądnie) odstrasza ESRI od bzdur, więc nie dotkną go słupem o długości 10 stóp. Dlatego ArcGIS, najpopularniejszy system GIS na świecie, nie obsługuje (i prawdopodobnie nigdy nie będzie) natywnie przestrzenny. To automatycznie zabija go jako realny format.
W ten sposób wracamy do gównianych plików kształtów, które są obsługiwane wszędzie.
Aktualizacja :
Najwyraźniej moja odpowiedź była na tyle kontrowersyjna, że ktoś uznał, że swobodnie jest edytować i zmieniać całe znaczenie mojej odpowiedzi, aby przedstawić ich punkt widzenia. Proszę nie rób tego. Jeśli się ze mną nie zgadzasz, to w porządku, po prostu opublikuj swoją opinię w innej odpowiedzi i pozwól społeczności podjąć decyzję. Wycofałem zmiany do mojej odpowiedzi, aby pokazać oryginalne znaczenie. Dodaję tę aktualizację na wypadek, gdybyś przeczytał zredagowaną odpowiedź, która twierdziła, że sqlite jest wykonalnym formatem.