2015-07-10 142 views
0

我正在使用ClusterPoint數據庫訪問開放街道地圖數據(https://github.com/clusterpoint/osm),但我想要找到包含在多個單獨多邊形中的POI。從多個多邊形搜索點

是否有任何可用的示例如何在查詢中定義和使用多個多邊形?

+0

您應該向我們提供更多詳細信息,以瞭解您的API是如何封裝Overpass API或如何爲本地OSM數據庫提供服務的。 – MaM

+0

@MaM,我相信這個數據庫是基於從開放街道地圖導出的POI數據的,所以它根本不涉及到立交橋,只是普通的可伸縮數據。 – romaninsh

回答

1

要在一個查詢中使用多個多邊形,您需要在<形狀>標記下定義它們。每個多邊形都應該有單獨的名稱。如果要在多個多邊形內進行搜索,請在查詢中使用OR運算符「{}」。

兩個多邊形和一個圓圈

例子可能看起來像:

<query> 
    {&gt;&lt;polygon1 &gt;&lt;polygon2 &gt;&lt;circle1} 
</query> 
<shapes> 
    <polygon1>lat1 lon1; lat2 lon2; lat3 lon3; lat4 lon4; lat5 lon5; ... 
     <coord1_tag_name>lat</coord1_tag_name> 
     <coord2_tag_name>lon</coord2_tag_name> 
    </polygon1> 
    <polygon2>lat1 lon1; lat2 lon2; lat3 lon3; lat4 lon4; lat5 lon5; ... 
     <coord1_tag_name>lat</coord1_tag_name> 
     <coord2_tag_name>lon</coord2_tag_name> 
    </polygon2> 
    <circle1> 
     <center>lat lon</center> 
     <radius>10 km</radius> <!-- here you can define distance in "km" or in "mi" --> 
     <coord1_tag_name>lat</coord1_tag_name> 
     <coord2_tag_name>lon</coord2_tag_name> 
    </circle1> 
</shapes> 

如果多邊形重疊,那麼這個區域內的匹配點在結果集將不會「重複」(將顯示一次)。