Обратные координаты широты / долготы геокода для получения данных о землепользовании (например, жилой район, шоссе и т. Д. c.) - PullRequest
0 голосов
/ 31 марта 2020


Я хотел бы проанализировать расположение электрических c станций подзарядки транспортных средств для Германии, Италии и Франции. Эти три страны, потому что они довольно сильно отличаются друг от друга в отношении своих соответствующих программ стимулирования для инфраструктуры зарядных станций publi c.

До сих пор у меня есть .csv экспорт из обоих OpenChargeMap и OpenStreetMap , содержащий данные о местоположении (широта и долгота) всех зарядных станций в этих трех странах, а также некоторые другие данные, которые я могу обработать в R.

Что я хотел бы сделать Теперь это своего рода обратное геокодирование по этим координатам широты и долготы для получения дополнительной информации об окрестностях. В частности, расположена ли соответствующая зарядная станция в жилом районе в городе, например, или на остановке для отдыха на шоссе. Зная, в каких местах расположены зарядные станции в этих трех странах, я надеюсь, что смогу сделать выводы относительно программ стимулирования. В данном случае я не ищу конкретные адреса c, а скорее API или другой способ обработки тысяч координат и получения информации, например, о плотности населения или о любом другом фрагменте данных, из которого я могу сделать выводы.

Я пытался заставить экспорт OpenStreetMap работать, но, к сожалению, я не могу запросить атрибут 'landuse' через Overpass Turbo API . Этот является моим базовым c запросом, который я использую в этом конкретном c API, но как только я запрашиваю ["landuse" = "residential"] вместо ["landuse" = ""], я получаю в качестве запроса пустые поля.

Я нашел API от Google , который предлагал бы поиск по различным адресным компонентам / типам . К сожалению, регистрация ключа API в Google не совсем реалистична c для объема моей работы. Кто-нибудь знает API (предпочтительно FOSS), способный сделать что-то подобное? Или даже как заставить работать запрос «landuse» в Overpass Turbo API, указанном выше?
Заранее спасибо за ваше время.

1 Ответ

0 голосов
/ 31 марта 2020

Ваш запрос API обхода ищет элементы, помеченные как amenity=charging_station и landuse. Это довольно редко, так как зарядные станции и землепользование отображаются как отдельные объекты. Вместо этого вам нужно посмотреть вокруг станций зарядки для элементов землепользования.

Так что вместо

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 метров от зарядных станций.

Обратите внимание, что это довольно сложный запрос. Для этого вам, вероятно, следует использовать собственный сервер API Overpass.

...