2012-05-01 54 views
1

我是地理問題的新手,需要了解如何使用PostGIS。 我通過osmosis將OpenStreetMap數據導入到PgSQL中,我需要查詢這些數據。PostGIS OSM查詢

基本上我從GPS的位置,我需要得到的所有節點,方式和區域的標籤,至少從我的一些距離(可以說100米)的一部分。

我真的不知道從哪裏開始。

謝謝。

回答

1

如果你有一個緯度和經度,你可以嘗試像以下:

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

與「地理」功能轉換會減慢速度,但給出米的距離,而不是不知所云度。

您還可以在'ways'表上執行相同的查詢,用ways.linestring列替換'geom'列。

0

檢查此鏈接:LINK

它與ZIP代碼,但如果你熟悉SQL,你可以很容易地改變它。 注意:如果您使用大型數據庫,則還應該使用邊界框(請參閱Box3D函數)......它有助於減少查詢時間。

+0

我需要問一個問題。可以說我在1公里的森林廣場的中心,我只能在100米的距離看到,所以我沒有看到任何森林節點。這也會覆蓋這種情況嗎? – user978734