Подтвердить что ты не робот

Есть ли API для openstreetmap?

Интересно, есть ли какой-либо API, который мог бы запросить данные OSM, например, Есть (lon_1, lat_1) на суше или в море? Или можно ли получить остров как четко определенный полигон? Единственное, что я видел до сих пор, - это просто инструменты для рендеринга данных OSM (генерации плит).

4b9b3361

Ответ 1

Я нашел отличный API для чтения данных Openstreetmap; Mapscript. Это интерфейс MapServer, который способен читать файлы *.map и *.shp. Он может использовать пространственный индекс и, следовательно, потенциально чрезвычайно быстро. Я сделал случайный поиск полигонов (проверяя, пересекает ли многоугольник землю) файла формы береговой линии мира за 40 мс.

Ответ 2

Да, есть api и xapi (расширенный api).

Я еще не использовал их.

Но в OSM есть облачный api. Я немного поиграл с api python.

Я не уверен, что если кто-то из них может помочь вам с вашей конкретной проблемой, но вы можете найти coastline рядом с ваш пункт. Если ваша точка находится в пределах многоугольника tagged natural = coastline, у вас есть остров (или континент)...

Ответ 3

Вы можете использовать API геокодирования CloudMade для поиска острова в данных OpenStreetMap. API вернет геометрию результата по умолчанию, и это звучит для меня, что вы ищете. Например, Арран у берегов Шотландии можно найти по следующему запросу http:

http://geocoding.cloudmade.com/BC9A493B41014CAABB98F0471D759707/geocoding/find/Arran,UK.js?results=1

(и как аккуратный маленький взлом, изменение .js на .html превью на результат.

Дополнительные документы и примеры API находятся у разработчиков .cloudmade.com/projects/show/geocoding-http-api Если вы не хотите использовать http api, тогда API-интерфейсы абстракции доступны на нескольких языках: ruby, python, perl и др.

Ответ 5

Конечно, api javascript называется openlayers.

Ответ 6

Я использовал выдержки OSM CloudMade, но у меня были проблемы с ними. Например, Норвегия была обрезана слишком сильно, в результате чего некоторые дороги на западном побережье исчезли.

Теперь я предпочитаю API обхода.

Поместите что-то подобное в форму запроса в 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>

Поместите границы области, которую вы хотите, в градусах, в атрибутах s, n, w и e элемента.

Ответ 7

MapQuest имеет набор API-интерфейсов "Open" для веб-сервисов на основе данных OpenStreetMap с довольно неограниченными Условиями (т.е. Условия тесно связаны с условиями OSM):

http://developer.mapquest.com/web/products/open