2015-07-10 107 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> 

如果多边形重叠,那么这个区域内的匹配点在结果集将不会“重复”(将显示一次)。