ジオメトリ列の命名規則-「geom」または「the_geom」?


22

私は最初のPostGISプロジェクトを始めています。さまざまな本やチュートリアルで、「geom」または「the_geom」というラベルの付いたジオメトリ列を見てきました。一方は他方よりも慣習的ですか?

さらに、ジオメトリ列のよりわかりやすい名前の代わりに「geom」/「the_geom」を使用する正当な理由はありますか?(たとえば、フィーチャの中心点の「centre_point」。)従来のdb列に「the_int」または「the_string」のラベルを付けないのに、なぜジオメトリ列にこのようにラベルを付けるのですか?

回答:


17

PostGISバージョン2.0では、「geom」は一般的な列名です。(少なくとも、ドキュメントなどを参照してください。)それ以前は「the_geom」であり、理由について推測することしかできません。

どちらでも安全に使用できますが、PostGISおよびSpatiaLiteでは「geom」を使用しています。

編集:質問の2番目の部分を完全に逃したため。
一般に、共通名は便利です。GISソフトウェアでは、テーブル内のジオメトリを単一の特定のタイプ、SRIDなどに制限する必要があるためです。したがって、テーブル名はジオメトリ列名よりもわかりやすい傾向があります。たとえば、「school_zone_polygons」、「school_zone_centroids」という名前のテーブルにはそれぞれ「geom」列があります。「geom_polygon」列、「geom_centroid」列を持つ「school_zones」テーブルではありません。

共通名があると、ジオメトリ列を参照するたびにスキーマを確認する必要がなくなります。


2
オブジェクト指向プログラミングでは、記事の前にトップレベルのオブジェクトを指定するのが一般的です。これにより、「the_chair」と「chair」タイプの以降のインスタンスが区別されます。しかし、PostGISは実際にはそのようには機能せず、単純な「geom」に切り替えると、おそらくクロスプラットフォーム実装が容易になります。
L_Holcombe

ええ、私はいつも、予約語との(可能性のある将来の)衝突を防ぐことだと思っていました。二重引用符を入力するのが好きな人はいません。
Scro

1
明確化してくれたScroに感謝します。テーブルに複数のジオメトリ列がある場合(私が計画しているわけではありませんが)、反例は理想的な慣習に思えます。すなわち、「geom_polygon」、「geom_centroid」などのテーブル「school_zones」
ニック

6

「geom」または「the_geom」が「shape」フィールドの総称として選択された理由の1つは、複数のジオメトリタイプ(ポイント、ライン、ポリゴンなど)を実際に1つの「geom」フィールドに格納できるため同じテーブル。PostGISメーリングリストで議論された2005年を振り返ることもできます。

たとえば、1つのテーブルの同じ「geom」フィールドにすべての家、通り、郡の境界を保存できます。他の方法を選択する理由は明らかにありますが、これは一般的な「geom」列名が使用された理由を表しています。

PostGISの長年のユーザーの一部が、「geom」が実際に選択された理由について詳細に説明してくれることを願っています。


1

既存のPostGisテーブルの公開でGeoserver REST APIを使用する場合、ジオメトリ列の名前が「geom」でない場合、RESTコマンドは失敗します。


2
私はかなり確信してこの動作はGeoserverのバグがあることだし、それが解決されると、それはもはや検討のポイントあってはならない
Devdatta Tengshe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.