0

Stackoverflow の皆さん、こんにちは。

私は組織の登録に取り組んでおり、組織はプロジェクト エリア (ネバダ州全体、米国全体、またはボストンなどの都市など) を登録でき、ユーザーは緯度と経度に従って組織がカバーするすべての組織を見つける必要があります。

組織の情報とユーザーの検索を関連付ける最善の方法は何ですか?

次のプロセスは問題ありませんか、それとも何か提案はありますか:

  1. 必要なすべての州、郡などのシェープファイルを postgis データベースにロードします
  2. 組織が「ニューヨーク州」をカバレッジ エリアに追加した場合、州のポリゴン シェイプ (またはシェイプの ID) を検索し、カバレッジ テーブルに保存します。
  3. 組織のカバレッジを検索すると、ユーザーの緯度と経度が含まれるすべてのプロジェクトが見つかります

上記のプロセスで、ユーザー情報をシェープファイル情報に関連付けることはできますか?

シェイプ ファイルでポリゴンを検​​索するにはどうすればよいですか? それらを ID で参照できますか?

都市名、緯度、経度を含むほとんどのリストは都市の中心点のみをリストしているため、ルックアップは都市でどのように機能しますか? または、都市の境界でもテーブルはありますか?

あなたの助けと提案をありがとう!

4

1 に答える 1

1

shp2pgsql を使用して shp ファイルをpostgisにインポートすると、他のすべての列 (州名、都市名など) もインポートされるため、名前または shp ファイルが持つその他のプロパティで検索したり、ジオメトリで検索したりできます。 、ポイントがあり、そのポイントの近くにあるポリゴンまたはポイント (この場合は都市) を検索する場合、データベースへのクエリは非常に簡単です。

SELECT * from myTable where ST_DWithin(users_point, the_geom, 0.002);

// ST_DWithinの距離単位はジオメトリ単位です。

PS shp2pgsql は、シリアル列 (一意の ID) を自動的に作成します。

于 2012-02-07T01:35:35.310 に答える