我正在尝试在我的应用程序中获取整个道路数据。假设我有一条名为 Abc Street 或 Xyz road 的道路,我想至少获得其起始地理点和最终/结束地理点,以便我可以在整条道路上绘制折线。
我想知道任何地图 api 中是否有任何 api 功能。谷歌/苹果/OpenStreet/Bing 等
OpenStreet 地图允许您下载“方式”整个文件。然而,在我的应用程序中下载并附加 GB 文件是不行的。任何更简单的方法将不胜感激
我尝试过使用这个查询
<osm-script output="json">
<query type="way">
<has-kv k="highway" regv="Nimitz Freeway"/>
</query>
<print/>
</osm-script>
尼米兹高速公路是美国奥克兰一条非常受欢迎的高速公路,但是使用
结果不成功。也许有人可以帮助我对这个api有更多的了解
对于 OpenStreetMap,您可以使用 Overpass API 下载单独的道路。在您的情况下,查询名称和大致位置似乎适合。道路的正确标签是高速公路标签。
我了解您正在寻找一种使用地图 API 获取道路起点和终点地理点的方法,而无需下载大文件。
一种选择是使用 Overpass API。 Overpass API 是查询 OpenStreetMap 数据的强大工具。要使用它来获取道路的起点和终点地理点,您可以使用以下查询:
<osm-script output="json">
<query type="way">
<has-kv k="highway" regv="Abc Street"/>
</query>
<print order="first">
<way id="[@id]" />
</print>
<print order="last">
<way id="[@id]" />
</print>
</osm-script>
此查询将返回名为“Abc Street”的道路的第一个和最后一个节点。然后,您可以使用这些节点来获取道路的起点和终点地理点。
另一种选择是使用第三方服务。有许多第三方服务提供各种格式的 OpenStreetMap 数据,包括 JSON 和 XML。其中一些服务还提供可用于查询数据的 API。
Nominatim 就是第三方服务的一个例子。 Nominatim 是一项免费的开源服务,可为 OpenStreetMap 数据提供地理编码和反向地理编码。 Nominatim 还提供了一个 API,您可以使用它来查询数据。
要使用 Nominatim API 获取道路的起点和终点地理点,您可以使用以下查询:
***https://nominatim.openstreetmap.org/search?q=Abc Street&format=json***
此查询将返回一个 JSON 对象,其中包含有关道路的信息,包括其起点和终点地理点。
归属:
本回复中的信息基于以下来源:
请注意,我仍在开发中,我可能并不总是能够提供准确或完整的信息。验证我通过其他来源提供的信息非常重要。