Konwencja nazewnictwa kolumn geometrii - „geom” czy „the_geom”?


22

Zaczynam swój pierwszy projekt PostGIS iw różnych książkach i samouczkach widziałem kolumnę geometrii oznaczoną „geom” lub „the_geom”. Czy jeden jest bardziej konwencjonalny od drugiego?

Ponadto, czy istnieje dobry powód, aby używać „geom” / „the_geom” zamiast bardziej opisowej nazwy kolumny geometrii? (Np. „Centre_point” dla centralnego punktu cechy). Nie nazywamy konwencjonalnych kolumn db „the_int” lub „the_string”, więc po co w ten sposób etykietować kolumny geometrii?

Odpowiedzi:


17

Począwszy od wersji 2.0 PostGIS „geom” jest wspólną nazwą kolumny. (Przynajmniej widzę dokumentację itp.) Wcześniej była to „the_geom” i mogę jedynie spekulować, dlaczego.

Możesz bezpiecznie korzystać z obu, ale chętnie używam „geom” w PostGIS i SpatiaLite.

Edycja: Ponieważ całkowicie przegapiłem drugą część pytania.
Ogólnie rzecz biorąc, wspólna nazwa jest wygodna, ponieważ oprogramowanie GIS często wymaga, aby geometrie w tabeli były ograniczone do jednego określonego typu, SRID itp. Dlatego nazwy tabel są zazwyczaj bardziej opisowe niż nazwa kolumny geometrii. Na przykład spodziewałbyś się znaleźć tabele o nazwach „school_zone_polygons”, „school_zone_centroids” każda z kolumną „geom”; nie tabela „school_zones” z kolumnami „geom_polygon”, „geom_centroid”.

Posiadanie wspólnej nazwy oznacza, że ​​nie musisz sprawdzać schematu za każdym razem, gdy chcesz odwoływać się do kolumny geometrii.


2
W programowaniu obiektowym często nazywa się obiekty najwyższego poziomu, przygotowując artykuł. To odróżnia „krzesło” od wszelkich późniejszych przypadków typu „krzesło”. Ale PostGIS tak naprawdę nie działa w ten sposób, a przejście na zwykły „geom” prawdopodobnie ułatwiło implementację na wielu platformach.
L_Holcombe

Tak, zawsze zgadywałem, że miało to zapobiec kolizji (możliwej przyszłości) z zastrzeżonym słowem. Nikt nie lubi wpisywać podwójnych cudzysłowów.
Scro,

1
Dzięki Scro za wyjaśnienie. Chociaż w przypadku, gdy masz wiele kolumn geometrii w tabeli (nie to, co planuję), twój kontrprzykład wydaje się idealną konwencją. Tj. Tabela „school_zones” z „geom_polygon”, „geom_centroid” itp.
Nick

6

Jednym z potencjalnych powodów, dla których „geom” lub „the_geom” wybrano jako ogólną nazwę dla pola „kształt”, było to, że w rzeczywistości można przechowywać wiele typów geometrii (punkt, linia, poli itp.) W jednym polu „geom” w ten sam stół. Możesz nawet spojrzeć wstecz na rok 2005, kiedy zostało to omówione na liście e-mail PostGIS.

Na przykład możesz przechowywać wszystkie swoje domy, ulice i granice hrabstwa w tym samym polu „geom” na jednym stole. Istnieją oczywiście powody, dla których możesz zdecydować się na coś innego, ale może to oznaczać powód, dla którego użyto nazwy ogólnej kolumny „geom”.

Mam nadzieję, że niektórzy długoletni użytkownicy PostGIS będą wtrącać się z bardziej szczegółowymi informacjami na temat tego, dlaczego tak naprawdę wybrano „geom”.


1

Podczas korzystania z interfejsu API REST Geoservera przy publikowaniu istniejących tabel PostGis, polecenie REST zakończy się niepowodzeniem, jeśli kolumna geometrii nie zostanie nazwana „geom”.


2
Jestem prawie pewien, że takie zachowanie jest błędem w Geoserver, a gdy zostanie rozwiązane, nie powinno być już przedmiotem rozważań
Devdatta Tengshe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.