2

できればPythonで、いくつかのポリゴンを同等の形状にマージして単純化するが、使用するポリゴンをはるかに少なくする最も効率的な方法は何ですか?

ポリゴン削減

Google マップ上の米国国勢調査データで定義されているように、郵便番号地域をグラフ化しようとしています。Django の優れたGeoDjangoフレームワークと、私がdjango-census-placesアプリに加えたハックを使用して、データベース内の地域を説明する数千の zip と緯度/経度ベクトルを取得しました。

ベクトルをエクスポートし、Javascript をレンダリングして、選択した zip を Google マップに描画するための基本的な Python をいくつか作成しました。ただし、私が遭遇した問題は、1 つの郵便番号でさえ数千のポリゴンを含むことができるため、恐ろしく遅いことです。この出力を JSON に前処理してキャッシュすることはできますが、それでもブラウザーがすべての三角形を読み込むのに数分かかります。いくつかの郵便番号の全体的なアウトラインにしか関心がないため、そのほとんどは冗長です。

この質問はこれと似ていますが、同じではないことに注意してください。オーバーラップはないと信じているので、ポリゴンのオーバーラップには関心がありません。

編集:この質問も非常によく似ています。

4

2 に答える 2

1

GeoDjango のいくつかの機能の 1 つは、さまざまなブール ポリゴン演算子です。各 MultiPolygon オブジェクトで union() を呼び出して、領域全体を表す MultiPolygon を取得するだけです。ポイント数の減少は桁違いです。

于 2013-01-18T20:28:32.767 に答える
0

ポリゴンをマージするには、ブール演算を実行する必要があることをお勧めします。Python でこれを行う方法はわかりませんが、JavaScript についても言及されているので、私のクリッパー ライブラリ (Delphi、C++、および C# で記述) の優れた JavaScript 翻訳がここにあります

クリッピング ライブラリの機能を非常によく示しているオンライン デモもあります。

于 2013-01-18T16:23:16.710 に答える