web-dev-qa-db-de.com

Gibt es eine API für openstreetmap?

Ich frage mich, ob es eine API gibt, durch die ich beispielsweise OSM-Daten abfragen könnte. Sind (lon_1, lat_1) an Land oder auf See? Oder könnte es möglich sein, eine Insel als klares Polygon zu erhalten? Die einzige Verwendung, die ich bisher gesehen habe, waren lediglich Werkzeuge zum Rendern von OSM-Daten (Erzeugen von Kacheln).

36

Ich habe eine großartige API zum Lesen von Openstreetmap-Daten gefunden. Mapscript . Dies ist eine Schnittstelle zu MapServer, die * .map- und * .shp-Dateien lesen kann. Es kann einen räumlichen Index verwenden und ist daher möglicherweise extrem schnell. Ich habe zufällige Polygon-Lookups der World Coastline Shape-Datei in 40 ms durchgeführt (um zu prüfen, ob ein Polygon Land schneidet).

1

Ja, es gibt ein api und xapi (erweitertes api).

Ich habe diese noch nicht benutzt.

Aber es gibt auch die cloudmade api zu OSM. Ich habe ein bisschen mit der Python-API gespielt.

Ich bin nicht sicher, ob einer von ihnen Ihnen bei Ihrem speziellen Problem helfen könnte, aber Sie könnten nach einer Küste in der Nähe Ihres Punktes suchen. Wenn sich Ihr Punkt innerhalb des Polygons markiert natural = coastline befindet, haben Sie eine Insel (oder einen Kontinent) ...

25
vikingosegundo

Sie können die Geokodierungs-API von CloudMade verwenden, um in den OpenStreetMap-Daten nach einer Insel zu suchen. Die API gibt standardmäßig die Geometrie des Ergebnisses zurück, und das klingt für mich, wonach Sie suchen. Beispielsweise kann Arran vor der Küste von Schottland durch die folgende http-Anfrage gefunden werden:

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

(und als netter kleiner Hack wird das Ergebnis durch Ändern der JS-Datei in .html angezeigt.

Weitere Dokumente und Beispiele zur API finden Sie unter http://developers.cloudmade.com/projects/show/geocoding-http-api Wenn Sie die http-API nicht verwenden möchten, stehen Abstraktions-APIs in mehreren Sprachen zur Verfügung - Ruby, Python, Perl und andere.

9
gravitystorm

Niemand scheint hier die Leaflet API erwähnt zu haben:
http://leafletjs.com/reference.html

6
Aquarius_Girl

Ich habe CloudMade OSM-Extrakte verwendet, hatte jedoch Probleme damit. Zum Beispiel wurde Norwegen zu eng geschnitten, wodurch einige Straßen an der Westküste verschwinden.

Ich bevorzuge jetzt die Überführungs-API.

Fügen Sie so etwas in das Anfrageformular unter http://www.overpass-api.de/query_form.html ein.

<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>

Setzen Sie die Grenzen der gewünschten Fläche in Grad in die Attribute s, n, w und e des Elements.

3
Graham Asher

Natürlich heißt die JavaScript-API openlayers .

2
ko-dos

MapQuest verfügt über eine Reihe von "Open" Web-Service-APIs, die auf OpenStreetMap-Daten mit ziemlich uneingeschränkten Bedingungen basieren (d. H. Die Bedingungen entsprechen weitgehend denen von OSM):

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

1
Mike Repass

wie wäre es mit http://wiki.openstreetmap.org/wiki/Nominatim ? Ich hatte dies verwendet und meinen eigenen Server eingerichtet

0
Kugutsumen