我想要能够点击在地图上的建筑物和得到的多边形,其中包括在点击坐标的建筑物。
我查看了天桥api,并尝试了以下内容:
<query type="way">
<around lat="51.0566036" lon="13.7181033" radius="30"/>
<has-kv k="building"/>
</query>
<union>
<item/>
<recurse type="down"/>
</union>
<print/>如果我选择一个大的radius,我会得到太多的建筑物。如果radius太小,我就没有任何建筑物。使用bbox-query没有帮助。
我也尝试过coord-query,但是我无法构造有意义的查询。所需的查询语法似乎不同。
手边有更好的方法吗?即使有了立交桥,我也得调查一下。
发布于 2014-07-20 14:57:40
你试图实现的是“反向地理编码”。为了避免上述问题(AFAIK),通常的实现使用任意半径,然后再次测试产生的形状是否包含所需的位置。
发布于 2014-07-20 16:28:34
在此GitHub票中也讨论了类似的要求。此时,立交桥API不计算建筑物的面积信息,这是is_in工作所必需的。但是,您可以设置自己的过路API实例,并调整区域创建规则,使其也包括建筑物。对于一个小面积,这应该是可行的,甚至在您的本地机器。
也请检查我提到的GitHub票证中的所有链接。它包括一些可能与您的问题相关的附加指针。
警告:在世界范围内计算建筑物面积的性能和空间影响尚不清楚,分别尚未得到充分测试。
发布于 2017-07-17 10:21:51
有一个使用gis_geometrics 1和overpy的Python解决方案。这个Python程序在LON的LAT找到了大楼。将其放在与gis_geometrics.py相同的目录中:
import overpy
from gis_geometrics import OSM_Polygon, Overpass
api = overpy.Overpass()
building = OSM_Polygon.getPolygonByCoords(api, LAT, LON)
if building is None: print("No building found.")
else: print(building.wayId)使用id的方式,您可以发出立交桥请求来查找多边形坐标。
https://stackoverflow.com/questions/24842624
复制相似问题