【问题标题】:How to get location specific information in Open Street Map using the Overpass API?如何使用 Overpass API 在 Open Street Map 中获取特定位置信息?
【发布时间】:2013-11-25 16:54:04
【问题描述】:

我无法正确查询以获取有关用户在给定时刻所行驶的道路的信息。

例如,用户正在开车,我想不时地获取有关用户正在行驶的道路的一些信息。

我尝试使用coord-query 获取特定位置信息,但找不到任何有用的信息。

<?xml version="1.0" encoding="UTF-8"?>
<osm-script>
   <coord-query lat="51.87810" lon="4.52587" />
   <print mode="body" />
</osm-script>

但是当我尝试运行 bbox-query:

<query type="way">
  <has-kv k="maxspeed"/>
  <bbox-query {{bbox}}/>
</query>
<union>
  <item/>
  <recurse type="down"/>
</union>
<print/>

我得到了更多有用的信息作为回复,例如姓名、单程、允许骑自行车等。

我正在使用this 工具来测试查询。

我的问题是如何从coord-query 中获取来自bbox-query 的信息,因此它只会返回有关该特定位置的信息,而不是有关其周围街道的信息?

【问题讨论】:

  • 您尝试做的是反向地理编码。是否有特定的原因,为什么您不使用 Nominatim,这个场景的 OSM 默认应用程序? wiki.openstreetmap.org/wiki/…
  • @MaM 这并不完全正确。当他对特定于道路的信息感兴趣时,反向地理编码通常会返回地址信息。这仍然可以通过 Nominatim 实现,但需要提取地理编码结果的方式 ID 并进行另一个 API 调用以获得所需的信息。
  • 哦,好吧,我误解了这个位置意味着这里只是位置。谢谢!

标签: location coordinates openstreetmap overpass-api


【解决方案1】:

不幸的是,没有太多 documentation for the coord-queryexamples,但看起来这个查询是用于搜索 areas 而不是 ways

在我看来,bbox-query 可能更有用,因为您永远没有确切的坐标。还请记住,在特定坐标处可能不止一条道路,例如在交叉路口或彼此上方/下方或非常靠近的道路上。

因此,无论哪种方式,您都必须实施一些措施来比较几条道路,以确定哪一条是最合理的。例如,这可以通过查看您去过的地方和您要去的地方以及将此信息与周围道路的几何形状进行比较来完成。同样,OSM 方式的第一个和最后一个 nodes 将帮助您,因为连接的方式总是在开始或结束时共享相同的节点。

【讨论】:

  • 为方便起见,您还可以使用环绕选择器 (&lt;around lat="51.87810" lon="4.52587" radius="30"/&gt;):overpass-turbo.eu/s/1Bq 但您仍然需要进行一些后期处理,正如 scai 指出的那样。
猜你喜欢
  • 2021-08-03
  • 2014-05-01
  • 1970-01-01
  • 2021-06-04
  • 2021-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多