Получить список мест / улиц и т. Д. Из OpenStreetMap? - PullRequest
5 голосов
/ 22 августа 2011

Учитывая комбинацию широты и долготы, а также радиус от этой точки (в км, если это имеет значение), кто-нибудь знает о сервисе / API (или даже о загрузке), который я могу использовать для получения списка все места, улицы и т. д. в пределах круга, исходя из предоставленной широты / долготы? Когда я говорю все места, меня интересует все - от водоемов до школ.

Большое спасибо за любую помощь, это очень ценится. :)

Ответы [ 2 ]

8 голосов
/ 22 августа 2011

Существует OSMAXPI , протокол веб-службы, который позволяет некоторым вещам, которые вы ищете.В вашем случае есть несколько проблем:

  1. Существует способ запроса данных OSM на основе ограничивающего прямоугольника (поэтому не круговая область, определяемая радиусом).
  2. Существует ограничение на размер области и объем данных, которые можно получить с помощью одного запроса.

Альтернативой является загрузка Planet OSM файла и установкадо вашей собственной базы данных и обслуживания API, но для этого требуется много ресурсов HW, поскольку база данных достаточно велика и ежедневно растет.

Также взгляните на некоторые другие связанные QA:

3 голосов
/ 16 июля 2012

Существует API, предоставляемый некоторыми людьми, который называется Overpass, который позволяет вам отправлять произвольно сложные запросы и получать только те данные, которые вам нужны.Если вы хотите, чтобы абсолютно все в определенной ограничивающей рамке или перекрывало ее, эти руны мне подходят (замените вашу собственную ограничивающую рамку; извините, это не круг, а прямоугольник в градусах).Используйте их в форме запроса по адресу http://www.overpass -api.de / query_form.html .

<osm-script timeout="10000" element-limit="1073741824">
  <union into="_">
    <bbox-query into="_" s="52.3170669250001" n="52.4027433480001" w="4.80527567900009" e="4.97793537400008"/>
    <recurse from="_" into="_" type="up"/>
    <recurse from="_" into="_" type="down"/>
  </union>
  <print from="_" limit="" mode="meta" order="id"/>
</osm-script>

Если вы хотите получить подмножество данных, посмотрите примеры здесь: http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide. Внимание: это слишком сложно для меня, чтобы понять.Желаем удачи!

...