gpt4 book ai didi

web-services - 为 ATM 开放街道 map 查询

转载 作者:行者123 更新时间:2023-12-04 00:36:44 27 4
gpt4 key购买 nike

我正在尝试找到一种方法来查询 Open Street Maps 以获取特定城市的 ATM 列表,有什么实现方法吗?

我知道我们可以使用 mapquest 来查询此信息,但它需要一个框,而且它提供的信息少于 Open Street Maps。

谢谢。

最佳答案

我猜你指的是 MapQuest 的 Nominatim 实例。仅作记录:Nominatim实际上是由 OpenStreetMap 社区创建的。 MapQuest 也只是运行它。

查询特定对象最好使用 Overpass API .这个 API 也有一个不错的前端,overpass turbo .它使创建查询和运行查询变得非常容易,并且还包括一个很好的结果可视化。

此查询将检索柏林的所有 ATM(标记为 amenity=atm):

<osm-script output="json" timeout="25">
<!-- fetch area “berlin” to search in -->
<id-query {{nominatimArea:berlin}} into="area"/>
<!-- gather results -->
<union>
<!-- query part for: “atm” -->
<query type="node">
<has-kv k="amenity" v="atm"/>
<area-query from="area"/>
</query>
</union>
<!-- print results -->
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>

您可以查看 result on overpass turbo .此查询由 overpass turbo 自动生成,我只需在其 wizard 中输入“atm in Berlin”即可。 .

请注意,这是一个特殊的立交桥 Turbo 查询,无法通过立交桥 API 直接运行。 overpass turbo 添加了一些额外的关键字,例如 {{nominatimArea:berlin}},这些关键字将自动替换为 Nominatim 返回的 Berlin 的边界框。但是如果你已经知道 bbox 或者想使用 Nominatim 自己检索它,那么你可以直接指定它:

<osm-script output="json" timeout="25">
<!-- gather results -->
<union>
<!-- query part for: “atm” -->
<query type="node">
<has-kv k="amenity" v="atm"/>
<bbox-query e="13.92242431640625" n="52.67221863915279" s="52.32778621884898" w="12.992706298828125"/>
</query>
</union>
<!-- print results -->
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>

Overpass API 和 overpass turbo 都支持各种结果输出格式,包括 XML 和 JSON。

关于web-services - 为 ATM 开放街道 map 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23684689/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com