反向地理编码 latitude/longitude 坐标以检索土地利用数据(例如住宅区、高速公路等)

Reverse geocode latitude/longitude coordinates to retrieve landuse data (eg. residential area, highway, etc.)


我想分析一下德国、意大利和法国的电动汽车充电站的位置。这三个国家,因为它们在各自的 public 充电站基础设施激励计划方面差异很大。

到目前为止,我所拥有的是来自 OpenChargeMap and OpenStreetMap 的 .csv 导出文件,其中包含这三个国家/地区所有充电站的位置数据(纬度和经度)以及我可以在 R 中处理的一些其他信息.

我现在想做的是对这些纬度和经度坐标进行某种反向地理编码,以检索有关周围环境的其他信息。特别是,各个充电站是否位于例如城市的住宅区或高速公路上的休息站。通过了解这三个国家的充电站位置,我希望能够得出有关激励计划的结论。在这种情况下,我不是在寻找特定地址,而是 API 或另一种方法来处理数千个坐标并检索有关人口密度或任何其他我可以从中得出结论的数据的信息。

我试图让 OpenStreetMap 导出工作,但不幸的是我似乎无法查询 'landuse' attribute through the Overpass Turbo API. This 是我在这个特定 API 中使用的基本查询,但是当我查询 ["landuse" = "residential"] 而不是 ["landuse" = ""] 时,我会收到空​​字段提示。

我找到了 API from Google which would offer lookup for various address components/types。不幸的是,在 Google 处注册一个 API 密钥对于我的工作范围来说不太现实。有人知道(最好是 FOSS)API 能够做这样的事情吗?或者甚至如何使 'landuse' 查询在上面链接的 Overpass Turbo API 中工作?
提前感谢您的宝贵时间。

您的 Overpass API 查询正在查找标记为 amenity=charging_station landuse 的元素。这是相当罕见的,因为充电站和土地使用被映射为不同的对象。相反,您需要查看 around 土地利用元素的充电站。

所以

area["ISO3166-1"="DE"]->.a;
nwr(area.a)["amenity"="charging_station"]["landuse"=""];

您将需要像

这样的查询
area["ISO3166-1"="DE"]->.a;
nwr(area.a)["amenity"="charging_station"];
way(around:200)["landuse"];

这将搜索位于充电站 200 米范围内带有土地使用标签的道路。

请注意,这是一个相当繁重的查询。您可能应该为此使用自己的 Overpass API 服务器。