PostGISは列をマルチポリゴンとポリゴンに制限できますか?


10

現在PostGIS 1.5.3を使用していますが、まもなく2.0にアップグレードします。したがって、次の質問に関連する2つのバージョンの違いに注意してください。

  • AddGeometryColumnを呼び出すときにPostGISが生成する制約を手動で変更せずに、ポリゴンとマルチポリゴンの挿入を許可し、他のジオメトリタイプの挿入を制限するPostGISジオメトリタイプの列を作成することは可能ですか?
  • これを行わない理由はありますか?特に、PostGISは、制約を手動で変更することで悪影響を与える可能性のあるメタデータを格納しますか?(私はPostGISに非常に慣れていないので、メタデータを格納するPostGISの考えがばかげている場合は許してください。)
  • すべてにマルチポリゴンを使用することで生じるオーバーヘッドはどのくらい重要ですか?

挿入する前にST_Multiを使用してポリゴンをマルチポリゴンに変換することはすでに承知しているので、それが不可能な場合や適切でない場合は、そうします。

回答:


6

それぞれの質問について...

  1. 制約を手動で変更しないとできません。

  2. PostGISジオメトリにはいくつかのメタデータが保存されています。技術的には、これを行わない理由はありません。列にポリゴンまたはマルチポリゴンを保持させたい場合は、それはあなた次第です。列ごとに1つのジオメトリタイプを使用する一般的な理由は、テーブルが大きくなるとき、またはテーブルが大規模である場合、あるいはその両方であるという単純さです。

  3. 1つのポリゴンのみで構成されるマルチポリゴンは、ポリゴンだけより大きくなりますが、それほど大きくはありません。(適切なインデックスを使用して)1つのポリゴンと1つのポリゴンを持つマルチポリゴンを空間的にクエリする速度は同じですが。

私のデータでは、列にポリゴンが含まれる場合、マルチポリゴンが列に挿入される可能性があるため、列をマルチポリゴンにします。挿入しながらST_Multiを実行するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.