0

2 つ以上のポリゴン (地理タイプ) の交点を返す関数を探しています。

ST_UNION、ST_COLLECT は認識していますが、ジオメトリ タイプに対してのみ機能します。

どんなヒントでも本当に感謝します

4

3 に答える 3

2

ジオメトリにキャストして、そこで操作を実行できます。デカルト平面で評価したときに形状が意味を成すように注意する必要があります。それらは日付変更線または極を包みますか?

select geography(st_union(a::geometry, b::geometry))

形状のエッジが非常に長い場合、球体で必要な大円補間と平面で取得する線形補間との間のエッジ補間の違いが影響し、エッジ形状を最良の状態に保つために、より手の込んだものにする必要があります。適切な地図投影法 (bestsrid 関数で自動的に選択されます) で作業することで可能です。

select geography(
         st_transform(
           st_union(
             st_transform(a::geometry, _st_bestsrid(a,b)),
             st_transform(b::geometry, _st_bestsrid(a,b))
           ),
           4326
       ))

楽しみ!

于 2010-08-24T17:04:12.693 に答える
1

Geography タイプは、PostGIS 関数の小さなサブセットのみをサポートします。ここでは、それらすべてをチェックして、それらのいずれかがニーズに合っているかどうかを確認できます。

http://postgis.refractions.net/docs/ch08.html#PostGIS_GeographyFunctions

于 2010-08-02T14:56:13.637 に答える
0

ST_Union または ST_Collect 内にネストされたジオメトリ タイプへの ST_Transform を検討しましたか? PostGIS のドキュメント (amercader のリンクから) は、一部の地理操作のためにその関数を内部的に使用していると述べています。

于 2010-08-20T11:29:55.683 に答える