私はGeoの問題に不慣れで、PostGISの使用について質問する必要があります。osmosisを介してOpenStreetMapデータをPgSQLにインポートしましたが、このデータをクエリする必要があります。
基本的に、私はGPSから位置情報を取得しており、ノード、ウェイ、エリアのすべてのタグを取得する必要があります。これらのタグは、少なくとも部分的には私からある程度の距離(たとえば、100メートル)にあります。
どこから始めたらいいのかわからない。
ありがとう。
私はGeoの問題に不慣れで、PostGISの使用について質問する必要があります。osmosisを介してOpenStreetMapデータをPgSQLにインポートしましたが、このデータをクエリする必要があります。
基本的に、私はGPSから位置情報を取得しており、ノード、ウェイ、エリアのすべてのタグを取得する必要があります。これらのタグは、少なくとも部分的には私からある程度の距離(たとえば、100メートル)にあります。
どこから始めたらいいのかわからない。
ありがとう。
緯度と経度がある場合は、次のようなものを試すことができます。
select * from nodes_with_tags
where st_distance(geography(geom),
geography(st_geomfromewkt('SRID=4326;POINT(' || lng || ' ' || lat || ')')))
<= 100;
'geography'関数を使用して変換すると、処理速度は低下しますが、距離がわかりにくい程度ではなくメートル単位で表示されます。
'ways'テーブルで同じクエリを実行して、'geom'列をways.linestring列に置き換えることもできます。
このリンクを確認してください:LINK
郵便番号で動作しますが、SQLに精通している場合は、簡単に変更できます。注:大規模なDBを使用する場合は、バウンディングボックス(Box3D関数を参照)も使用する必要があります...クエリ時間を短縮するのに役立ちます。