web-dev-qa-db-fra.com

Existe-t-il une API pour openstreetmap?

Je me demande s’il existe une API avec laquelle je pourrais interroger des données OSM, par exemple; Est-ce que (lon_1, lat_1) est à terre ou en mer? Ou pourrait-il être possible d’obtenir une île sous forme de polygone bien défini? La seule utilisation que j’ai vue jusqu’à présent concerne les outils de rendu de données OSM (génération de vignettes).

36
Yngve Sneen Lindal

J'ai trouvé une excellente API pour lire les données Openstreetmap; Mapscript . Il s'agit d'une interface avec MapServer, capable de lire les fichiers * .map et * .shp. Il est capable d'utiliser un index spatial et est donc potentiellement extrêmement rapide. J'ai effectué des recherches aléatoires de polygones (vérifiant si un polygone coupe une terre) du fichier de forme de la côte mondiale en 40 ms.

1

Oui, il existe un api et xapi (api étendu).

Je n'ai pas encore utilisé ceux-ci.

Mais il y a aussi le cloudmade api to OSM. J'ai un peu joué avec l'API Python.

Je ne sais pas si l'un d'entre eux pourrait vous aider à résoudre votre problème particulier, mais vous pouvez rechercher un littoral proche de votre point. Si votre point est dans le polygone tagged naturel = littoral , vous avez une île (ou un continent) ...

25
vikingosegundo

Vous pouvez utiliser l'API de géocodage de CloudMade pour rechercher un îlot dans les données OpenStreetMap. L'API renverra la géométrie du résultat par défaut, et cela me semble ce que vous recherchez. Par exemple, Arran au large de l'Ecosse peut être trouvé à l'aide de la requête http suivante:

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

(et comme un petit bidouillage soigné, changer le .js en .html donne un aperçu du résultat.

Vous trouverez plus de documents et d’exemples sur l’API à l'adresse developers.cloudmade.com/projects/show/geocoding-http-apiSi vous ne souhaitez pas utiliser l'API http, les API d'abstraction sont disponibles en plusieurs langues: Ruby, Python, Perl et autres.

9
gravitystorm

Personne ne semble avoir mentionné ici l'API Leaflet:
http://leafletjs.com/reference.html

6
Aquarius_Girl

J'ai utilisé des extraits CloudMade OSM mais j'ai eu quelques problèmes avec eux. Par exemple, la Norvège a été trop serrée, entraînant la disparition de certaines routes de la côte ouest.

Je préfère maintenant l'API de contournement.

Mettez quelque chose comme ceci dans le formulaire de requête situé à 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>

Placez les limites de la zone souhaitée, en degrés, dans les attributs s, n, w et e de l'élément.

3
Graham Asher

Bien sûr, l'API javascript s'appelle openlayers .

2
ko-dos

MapQuest dispose d'un ensemble d'API de services Web 'Open' basées sur des données OpenStreetMap avec des termes relativement peu restrictifs (c'est-à-dire que les termes sont très proches de ceux d'OSM):

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

1
Mike Repass

que diriez-vous de http://wiki.openstreetmap.org/wiki/Nominatim ? Je l'avais utilisé et installé mon propre serveur

0
Kugutsumen