Есть ли API для openstreetmap?[закрыто]
-
11-09-2019 - |
Вопрос
Интересно, есть ли какой-нибудь API, через который я мог бы, например, запрашивать данные OSM;(lon_1, lat_1) находится на суше или в море?Или можно было бы получить остров в виде четко определенного многоугольника?Единственное использование, которое я видел до сих пор, — это инструменты для рендеринга данных OSM (генерации тайлов).
Решение 7
Я нашел отличный API для чтения данных Openstreetmap; Mapscript.Это интерфейс MapServer, который может читать файлы *.map и *.shp.Он может использовать пространственный индекс и поэтому потенциально чрезвычайно быстр.Я выполнил случайный поиск полигонов (проверяя, пересекает ли многоугольник сушу) файла формы береговой линии мира за 40 мс.
Другие советы
Да, есть API и хапи (расширенный API).
Я еще не использовал их.
Но есть также облачный API в ОСМ.Я немного поигрался с API Python.
Я не уверен, сможет ли кто-нибудь из них помочь вам с вашей конкретной проблемой, но вы можете поискать береговая линия близко к вашей точке.Если ваша точка находится внутри многоугольника с тегом природный = береговая линия, у вас есть остров (или континент)...
Вы можете использовать API геокодирования CloudMade для поиска острова в данных OpenStreetMap.API по умолчанию вернет геометрию результата, и мне кажется, это то, что вы ищете.Например, Арран у берегов Шотландии можно найти по следующему http-запросу:
http://geocoding.cloudmade.com/BC9A493B41014CAABB98F0471D759707/geocoding/find/Arran,UK.js?results=1
(и в качестве небольшого хитрого трюка изменение .js на .html позволяет предварительно просмотреть результат.
Больше документов и примеров на API-на разработчиках. и другие.
Кажется, здесь никто не упоминал о Листовка API:
http://leafletjs.com/reference.html
Я использовал экстракты CloudMade OSM, но с ними возникли некоторые проблемы.Например, Норвегия была слишком сильно обрезана, в результате чего некоторые дороги на западном побережье исчезли.
Теперь я предпочитаю 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>
Укажите границы нужной области в градусах в атрибутах s, n, w и e элемента.
Конечно, javascript API называется открытые слои.
MapQuest имеет набор «открытых» API веб-сервисов, основанных на данных OpenStreetMap, с довольно неограниченными Условиями (т.е.Условия во многом соответствуют условиям OSM):
как насчет http://wiki.openstreetmap.org/wiki/Nominatim?Я использовал это и настроил свой собственный сервер