1

36,000 個の重なり合わないポリゴン (都市の境界) の巨大なシェープファイルがあります。特定の緯度/経度が該当するポリゴンを簡単に特定したいと考えています。非常に計算効率が高くなければならないことを考えると、最善の方法は何でしょうか?

tilex と tiley がズーム レベル 21 または 22 のタイル識別子であるルックアップ テーブル (tilex,tiley,polygone_id) を作成することを考えていました。

Postgres の GIS 拡張機能は使用したくないので、2 日間実行してすべての INSERT ステートメントを生成するプログラムで問題ありません。

4

2 に答える 2

1

ステートメントを何に挿入しますか? 別の空間データベースまたは他のデータベースを使用していますか? Python、C、または Java を使用する場合は、shapely、GEOS、または JTS を使用して、必要なことを行うためのカスタム コードを簡単に作成できます。

Python では、この lib を使用してシェープファイル http://indiemaps.com/blog/2008/03/easy-shapefile-loading-in-python/を開きます。

次に、 http ://gispython.org/shapely/docs/1.0/manual.html#contains で封じ込めをテストします。

Java の場合は、JTS も含まれている Geotools を使用します。

于 2010-05-06T02:01:25.067 に答える
0

BSPツリーが必要なようです。基本的には、エリアをツリーのように小さなポリゴンに分割します。

利点は、後ですべてのポリゴンと座標を比較する必要がないことです。これにより、正しいポリゴンをすばやく見つけることができます。

于 2010-05-05T13:15:31.770 に答える