Convenzione sulla denominazione delle colonne geometriche - "geom" o "the_geom"?


22

Sto iniziando il mio primo progetto PostGIS e in vari libri ed esercitazioni ho visto la colonna geometrica etichettata "geom" o "the_geom". Uno è più convenzionale dell'altro?

Inoltre, c'è una buona ragione per usare 'geom' / 'the_geom' invece di un nome più descrittivo per la colonna della geometria? (Ad esempio 'centre_point' per il punto centrale di una funzione.) Non etichettiamo le colonne convenzionali db 'the_int' o 'the_string', quindi perché etichettare le colonne geometriche in questo modo?

Risposte:


17

A partire da PostGIS versione 2.0, "geom" è il nome della colonna comune. (Almeno la vedo documentazione, ecc.) Prima di allora era "the_geom", e posso solo speculare sul perché.

Puoi tranquillamente usare entrambi, ma sto usando felicemente "geom" in PostGIS e SpatiaLite.

Modifica: perché ho completamente perso la seconda parte della domanda.
In generale, un nome comune è conveniente perché è comune per il software GIS richiedere che le geometrie in una tabella siano vincolate a un singolo tipo specifico, SRID, ecc. Pertanto, i nomi delle tabelle tendono ad essere più descrittivi del nome della colonna della geometria. Ad esempio, ti aspetteresti di trovare tabelle denominate "school_zone_polygons", "school_zone_centroids" ognuna con una colonna "geom"; non una tabella "school_zones" con colonne "geom_polygon", "geom_centroid".

Avere un nome comune significa che non è necessario controllare lo schema ogni volta che si desidera fare riferimento a una colonna della geometria.


2
È comune nella programmazione orientata agli oggetti nominare oggetti di livello superiore anteponendo un articolo. Ciò distingue "the_chair" da qualsiasi istanza successiva di tipo "chair". Ma PostGIS non funziona in questo modo e passare a un semplice "geom" probabilmente ha reso più semplice l'implementazione multipiattaforma.
L_Holcombe,

Sì, ho sempre immaginato che fosse per prevenire una (possibile futura) collisione con una parola riservata. A nessuno piace scrivere virgolette doppie.
Scro

1
Grazie Scro per il chiarimento. Sebbene nell'istanza in cui ci siano più colonne geometriche in una tabella (non che io stia pianificando di fare), il tuo controesempio sembrerebbe una convenzione ideale. Vale a dire la tabella "school_zones" con "geom_polygon", "geom_centroid" ecc.
Nick

6

Un potenziale motivo per cui "geom" o "the_geom" è stato scelto come nome generico per il campo "forma" è stato il fatto che è possibile memorizzare più tipi di geometria (punto, linea, poli, ecc.) Nell'unico campo "geom" nel stesso tavolo. Puoi anche guardare indietro al 2005 quando questo è stato discusso nella lista e-mail di PostGIS.

Ad esempio, puoi memorizzare tutte le case, le strade e i confini della contea nello stesso campo "geom" del tuo singolo tavolo. Ci sono ovviamente motivi per cui puoi scegliere di fare diversamente, ma questo potrebbe rappresentare il motivo per cui è stato usato un nome di colonna "geom" generico.

Si spera che alcuni utenti PostGIS di lunga data entrino in contatto con maggiori dettagli sul perché "geom" è stato effettivamente scelto.


1

Quando si utilizza l'API REST Geoserver nella pubblicazione di tabelle PostGis esistenti, il comando REST fallirà se la colonna della geometria non è denominata "geom".


2
Sono abbastanza sicuro che questo comportamento sia un bug con Geoserver e, una volta risolto, non dovrebbe più essere considerato
Devdatta Tengshe,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.