PostgreSQL obsługuje już typy danych przestrzennych, operatorów i indeksowanie.
Co dokładnie zapewnia PostGIS, co wymagało istnienia jako rozszerzenie PostgreSQL?
Dlaczego nie wszyscy po prostu używamy przestrzennej funkcjonalności PostgreSQL?
PostgreSQL obsługuje już typy danych przestrzennych, operatorów i indeksowanie.
Co dokładnie zapewnia PostGIS, co wymagało istnienia jako rozszerzenie PostgreSQL?
Dlaczego nie wszyscy po prostu używamy przestrzennej funkcjonalności PostgreSQL?
Odpowiedzi:
Jeśli ponownie zranisz wszechświat do początku 2001 roku i nie tylko pozwolisz wynalazcom PostGIS zobaczyć przyszłość, ale także pozwolisz PSC PgSQL zobaczyć przyszłość, być może PostGIS będzie serią łat na PgSQL. Ale przynajmniej, gdybyśmy zaczęli jako łatki do rdzenia, pierwszą rzeczą, na którą byśmy się natknęli, było:
A rdzeń PgSQL powiedziałby: „nie, oczywiście nie, obszary mają istniejący dobrze rozumiany semantyczny i nie możemy robić wstecz takich niezgodnych zmian”.
Jako programiści niebędący rdzeniami PostGIS był w stanie nokautować miesięczne i 6-miesięczne wydania na wiele lat, podczas gdy rdzeń PgSQL rozwijał się wraz z wydaniami rocznymi i dłuższymi. Mogliśmy również dodawać dowolne funkcje, kiedy tylko chcieliśmy, ponieważ mieliśmy uprawnienia do zatwierdzania w naszym projekcie, ale uzyskanie praw do zatwierdzania w PgSQL zajmuje bardzo dużo czasu.
Do czasu, gdy PostGIS wykazywał wystarczającą wartość zewnętrzną, że rdzeń PgSQL przejrzał i powiedział do siebie „hmm, byłoby miło mieć w jądrze jako dodatkową funkcję”, było już tyle kodu o innym standardzie i stylu niż PgSQL (nie wspominając o niekompatybilnej licencji), że pomysł połączenia nie był tak naprawdę możliwy.
Zamiast tego PostGIS stał się kanonicznym przykładem naprawdę dużego złożonego rozszerzenia, które pomaga PgSQL pozostać modułowym i rozszerzalnym. „Jak to wpłynie na coś takiego jak PostGIS” to pytanie często zadawane, gdy rdzeń PgSQL ocenia pewne zmiany. Jest to również dobra rzecz, może nie tak ładna jak PostGIS będąca częścią rdzenia, ale wystarczająco dobra.
Istnieją inne powody, takie jak długa lista zależności, których rdzeń PgSQL nie chciałby widzieć, ogólnie niższa spójność kodu i czystość interfejsu API, które chcieliby ulepszyć, i tak dalej. Nawet w chwili poczęcia PostGIS był zbyt duży, aby PgSQL mógł go przełknąć w jednym kęsie.
źródło
To po prostu nieprawda, PostgreSQL nie obsługuje typów danych przestrzennych. Obsługuje typy geometryczne. Są one w zupełności w porządku dla niektórych rzeczy, ale są całkowicie oddzielone od rzeczywistych układów współrzędnych. Rodzime typy
Aktualizacja
Jeśli chodzi o pytanie indeksowe, to w FAQ
źródło
Lista funkcji PostGIS rozszerza również te możliwości:
Ponadto do punktów / części wymienionych już w tym poście. Dodałbym, jak wspomniano na stronie PostGIS, jak to działa
źródło