Вопрос

Интересно, есть ли какой-нибудь 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://developer.mapquest.com/web/products/open

как насчет http://wiki.openstreetmap.org/wiki/Nominatim?Я использовал это и настроил свой собственный сервер

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top