私はGISの世界、特にPostGISの世界にはかなり慣れていないので、答えが明らかな場合は失礼します...
多くの建物の分析をしたいと思います。私が興味を持っていることの1つは、それぞれの方向に沿ったファサードの表面です。下の図に示すように、一連のポリゴンのすべてのエッジの長さと(通常の)方向を設定したいと思います。この例では、1つのサーフェスのみを強調表示しています。
結果テーブルは次のようになります。
building_id | edge_id | orientation | edge_length
-------------------------------------------------
1 | 1 | 315 | 10.0
1 | 2 | 45 | 7.0
1 | ... | ... | ...
しかし、それをさらに処理するために結果を格納するスマートな方法であるかどうかはわかりません(たとえば、エッジから次の建物までの距離を計算するなど)。だから私の質問は2つあります:
- ポリゴンのエッジを分析できる効率的なPostGIS関数はありますか?ネイティブのPostGIS関数がない場合は、代わりにPythonベースのアプローチに興味があります。
- ポリゴンには異なる数のエッジがある可能性があるため、結果をPostGISテーブルに格納するためのスマートな方法は何でしょうか?
2
まず、ポリゴンのセグメントを作成します。stackoverflow.com/questions/7595635/...を次に始点と終点の座標がx1、y1とx2、y2とST_Azimuthより(ST_Startpoint(ジオメトリ)、ST_Endpoint(ジオメトリ))のような列に行くべき。(postgis.org/docs/ST_Azimuth.html)
—
タマス黄砂
@TamasKosa:あなたは良い答えの本質を持っています。一つに拡大してみませんか?また、法線の場合、方位角には+/- pi / 2が必要です。
—
マーティンF
@TamasKosaこれも私が考えていたアプローチです。ST_ExteriorRingを使用してから、方位角を取得します。建物にはさまざまな数のエッジがあるため、理想的には結果をどのように保存しますか?私が上記のようなテーブルで?MartinFに同意します。これはほぼ答えです;)
—
n1000
ちょうど好奇心が強い、なぜあなたは法線...太陽の露出をしたいのですか?
—
マーティンF
質問の最初の部分が回答されました。ST_DumppointsとST_Azimuthを使用できます。2番目の部分では、出力への空間要素がないため、ポリゴンIDとedge_idへのリンクがあると思います。
—
John Powell