1

私はGeoの問題に不慣れで、PostGISの使用について質問する必要があります。osmosisを介してOpenStreetMapデータをPgSQLにインポートしましたが、このデータをクエリする必要があります。

基本的に、私はGPSから位置情報を取得しており、ノード、ウェイ、エリアのすべてのタグを取得する必要があります。これらのタグは、少なくとも部分的には私からある程度の距離(たとえば、100メートル)にあります。

どこから始めたらいいのかわからない。

ありがとう。

4

2 に答える 2

1

緯度と経度がある場合は、次のようなものを試すことができます。

select * from nodes_with_tags 
where st_distance(geography(geom), 
 geography(st_geomfromewkt('SRID=4326;POINT(' || lng || ' ' || lat || ')'))) 
  <= 100;

'geography'関数を使用して変換すると、処理速度は低下しますが、距離がわかりにくい程度ではなくメートル単位で表示されます。

'ways'テーブルで同じクエリを実行して、'geom'列をways.linestring列に置き換えることもできます。

于 2012-05-07T19:07:46.567 に答える
0

このリンクを確認してください:LINK

郵便番号で動作しますが、SQLに精通している場合は、簡単に変更できます。注:大規模なDBを使用する場合は、バウンディングボックス(Box3D関数を参照)も使用する必要があります...クエリ時間を短縮するのに役立ちます。

于 2012-05-01T23:11:34.423 に答える