Pergunta

Gostaria de saber se existe alguma API que eu poderia consultar dados OSM através, por exemplo; São (lon_1, lat_1) em terra ou no mar? Ou poderia ser possível obter uma ilha como um polígono bem definida? O único uso que eu vi até agora tem ferramentas sido apenas para a renderização de dados OSM (telhas de geração).

Foi útil?

Solução 7

Eu encontrei uma grande API para leitura de dados OpenStreetMap; MapScript . Esta é uma interface para MapServer, que é capaz de ler .map * e * .shp arquivos. É capaz de usar um índice espacial e, portanto, potencialmente extremamente rápido. Eu tenho feito pesquisas de polígonos aleatórios (verificando se um polígono cruza terra) do arquivo de forma litoral mundo em 40 ms.

Outras dicas

Sim, há um api e xapi (API estendida).

Eu ainda não utilizados estes ainda.

Mas há também a CloudMade api para OSM. Joguei um pouco com a API do Python.

Eu não tenho certeza, se algum deles poderia ajudá-lo com seu problema particular, mas você poderia procurar um costa perto de seu ponto. Se o ponto está dentro do polígono marcado natural = litoral , você tem uma ilha ( ou um continente) ...

Você pode usar a API de geocodificação do CloudMade para procurar uma ilha nos dados OpenStreetMap. A API retornará a geometria do resultado por padrão, e isso soa para mim o que você está procurando. Por exemplo, Arran ao largo da costa da Escócia pode ser encontrado o seguinte pedido http:

http://geocoding.cloudmade.com/ BC9A493B41014CAABB98F0471D759707 / geocoding / encontrar / Arran, UK.js? resultados = 1

(e como um pequeno hack puro, mudando o .js para .html previews o resultado.

Mais docs e exemplos sobre a API estão em developers.cloudmade.com/projects/show/geocoding-http-api Se você não quiser usar a api http, então APIs de captação estão disponíveis em vários idiomas -. Ruby, Python, Perl e outras

Ninguém parece ter mencionado aqui o Folheto API:
http://leafletjs.com/reference.html

Eu tenho usado extratos OSM CloudMade mas tive alguns problemas com eles. Por exemplo, a Noruega foi cortada com muita força, fazendo com que algumas estradas na costa oeste a desaparecer.

Agora eu prefiro a API viaduto.

Coloque algo como isto no formulário de consulta em 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>

Coloque os limites da área que você deseja, em graus, nas s, n, w e e atributos do elemento.

É claro, a API JavaScript é chamado openlayers .

MapQuest tem um conjunto de APIs de serviços web 'aberto' com base em dados do OpenStreetMap com Termos bastante sem quaisquer entraves (ou seja, os Termos acompanhar de perto ao de OSM):

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

http://wiki.openstreetmap.org/wiki/Nominatim ? Eu tinha usado isso e configurar o meu próprio servidor

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top