api - "Search within distance"OpenStreetMap 的 API

标签 api search openstreetmap

OpenStreetMap 是否有任何 API 可以让我获取距引用位置一定距离(例如 10 英里)内的 POI 列表?

最佳答案

据我所知,API 并不直接支持这一点。最简单的方法是select a (quasi-)rectangular bounding box您的圈子适合的范围,并使用它来检索您的兴趣点。然后,您可以计算到每个兴趣点的距离,并丢弃那些超出您半径的点。这将删除靠近框角的一小部分 POI,因此不在您的圈子内。您希望按此顺序进行操作,这样您只需对相对较少的目标位置进行距离计算。

不要忘记边界框是由纬度/长角定义的,因此它不是真正的矩形。经线在两极汇聚,因此盒子的顶部与底部的宽度不同。这对您的影响有多大取决于您距离极点有多近(长度 ~= (40000km/360) * cos (lat))。

如果您不需要极高的精度,那么您可以使用毕达哥拉斯定理计算距离,记住经度的余弦变化和因子 2 单位差(360 度的经度,但只有 180 度的纬度)。如果您确实需要准确性,那么您就进入了 spherical trigonometry 的领域,并且还需要考虑ellipsoidal earth 。这是 online calculator ,配有方程式和开源代码,这在这方面很有帮助。

关于api - "Search within distance"OpenStreetMap 的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1384397/

相关文章:

linux - 如何模拟假的第三方响应进行测试

php - Google 翻译 API 中的问题

XML::Parser 在大文件上死掉

javascript - 每个标记有多个类别选项在传单 map 中使用 GeoJSON

javascript - Reactjs:无限滚动不起作用

android - 使用分页改造定期调用

python - 用于在 python 中搜索视频的 Youtube API 中的 Unicode

python - BeautifulSoup 寻找 xml 标签

c# - 在 EPiServer 8 中,如何从内容项获取 ContentType?

regex - 替换某些列之间的所有不匹配字符