POSTGISは、ポリゴンの最大長と平均幅を取得します


13

postgisにはポリゴンタイプのテーブルがあります。

ポリゴンの最大長を自動的に計算する必要があります。

ここに画像の説明を入力してください

そして2番目は平均幅です。

ここに画像の説明を入力してください

他の場合はすべてのポリゴンがほぼ長方形になりますが、実際には曖昧であり、幅と高さを区別することはほとんど不可能であるため、これが可能かどうかを今疑っています。

誰かがこれに光を当てることができるかどうか見てみましょう。

よろしく、


これは興味深い質問であり、間違いなく可能です。少なくとも、すべての頂点から他のすべての多項式ランタイムに単純に線を引くだけですが、解決策です。よりエレガントなソリューションについては、gis.stackexchange.com / questions / 32552 /…をご覧ください。
John Powell

「最大長」の説明は明確に見えますが、「平均幅」の例はこの長さに垂直ではありません。そうではありませんか?次に、「高さ」に言及します。少しわかりにくい!
マーティンF

この平均幅の概念、特に実際に使用しているジオメトリの例については、さらに詳細が必要だと思います
-raphael

回答:


13

質問の最初の部分:入力として同じジオメトリを2回使用するST_LongestLineはどうですか?

SELECT 
  ST_Length(ST_LongestLine(
   (SELECT geom FROM mylayer WHERE gid=1),
   (SELECT geom FROM mylayer WHERE gid=1))
);

質問の2番目の部分:

ポリゴンの平均幅の計算に関して、ここでいくつかの興味深い答えを見つけることができます: ポリゴンの平均幅を計算するにはどうすればよいですか?


それは賢いです、その機能を知りませんでした。
ジョンパウエル

それはとても便利です。この結果の最長ラインからポリラインを作成する方法はありますか?
user1655130

7

パート1では、ST_MaxDistanceを使用します

2つのラインストリング間の2次元の最大距離を投影単位で返します。g1とg2が同じジオメトリである場合、関数はそのジオメトリで互いに最も遠い2つの頂点間の距離を返します。

例:

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