Anleitungen

Ein Höhenprofil für eine Wander- oder Radroute erstellen

Ein Höhenprofil ist einfach eine Liste von Punkten, denen jeweils eine Höhe zugeordnet ist, aufgetragen über die Entfernung entlang der Route. Der Höhen-Endpunkt liefert Ihnen diese Höhe für so viele Punkte, wie Sie ihm senden, in einem einzigen Aufruf.

Die Route senden

Übergeben Sie mit dem Parameter points eine Reihe von Breiten- und Längengradpaaren, getrennt durch senkrechte Striche, wobei die Werte jedes Paars durch ein Komma getrennt sind.

GET /v1/elevation?points=45.8326,6.8652|45.8400,6.8700|45.8475,6.8750
{
  "status": "ok",
  "results": [
    {"lat": 45.8326, "lon": 6.8652, "elevation_m": 1035},
    {"lat": 45.8400, "lon": 6.8700, "elevation_m": 1210},
    {"lat": 45.8475, "lon": 6.8750, "elevation_m": 1390}
  ]
}

Ergebnisse in ein Profil verwandeln

Jedes Element in results entspricht dem Punkt, den Sie an derselben Position gesendet haben. Kombinieren Sie elevation_m mit der kumulierten Entfernung zwischen aufeinanderfolgenden Punkten, die Sie selbst aus den Koordinaten berechnen, und Sie haben die x- und y-Werte für ein Profildiagramm, ohne weitere Abfragen.

Ein kürzeres Beispiel mit einem Bulk-Body

Wenn Sie lieber ein strukturiertes Array statt des durch senkrechte Striche getrennten Parameters points senden möchten, schicken Sie per POST ein JSON-Array von Koordinatenobjekten an /v1/elevation, genauso wie die anderen Endpunkte Bulk-Bodies annehmen.

POST /v1/elevation
Content-Type: application/json

[{"lat": 45.8326, "lon": 6.8652}, {"lat": 45.8400, "lon": 6.8700}]

So oder so sind die Kosten gleich, eine Anfrage pro Punkt. Wählen Sie also die Form, die sich aus Ihrer vorhandenen Datenstruktur leichter erzeugen lässt, einen aus einem Array gebauten Query-String oder ein auf dieselbe Weise gebautes JSON-Array.

Den Punktabstand wählen

Eine Route mit hundert GPS-Punkten alle paar Meter braucht nicht für jeden einzelnen die Höhe, um ein lesbares Profil zu zeichnen. Wenn Sie auf einer langen Route jeden zwanzigsten oder fünfzigsten Punkt verwenden oder auf gleichmäßige Entfernungsintervalle neu abtasten, bleibt das Diagramm glatt und die Zahl der Anfragen sinkt, da jeder Punkt im Parameter points als eine Anfrage zählt.

Ein Fehler, den Sie vermeiden sollten

elevation_m als zentimetergenau zu behandeln, verlangt den Daten mehr ab, als ein Höhenprofil braucht. Der Wert ist genau genug, um ein glattes, lesbares Profil zu zeichnen und einen sinnvollen Gesamtanstieg zu berechnen, aber zwei Punkte, die auf flachem Gelände einen Meter auseinanderliegen, können leicht unterschiedliche Werte liefern, die nichts über das tatsächliche Gelände aussagen. Bauen Sie Ihr Diagramm und Ihre Berechnungen des Anstiegs so, dass sie diese Art von kleinem Rauschen tolerieren, statt jede Schwankung als echtes Merkmal der Route zu behandeln.

Ein Sonderfall über Wasser oder nicht kartiertem Gelände

Ein Punkt über offenem Wasser oder in einem Gebiet mit wenigen Höhendaten kann statt eines Fehlers einen niedrigen oder flachen Wert liefern. Wenn Ihre Route eine Fährüberfahrt oder einen Abschnitt durch abgelegenes Gelände enthält, überprüfen Sie ungewöhnlich flache Abschnitte Ihres Profils anhand der Karte selbst, statt anzunehmen, dass die Zahl immer festen Boden beschreibt.

Was es kostet

Ein Profil mit hundert Punkten sind hundert Anfragen, deutlich innerhalb der 2.500 kostenlosen Anfragen pro Tag, die in jedem Schlüssel enthalten oder von einer einzelnen Adresse auch ohne Schlüssel verfügbar sind. Ein Routenplanungs-Tool, das täglich viele Nutzer bedient, sollte trotzdem seine Kontingent-Header im Blick behalten, da sich Höhenprofile für beliebte Routen schneller summieren als einzelne Abfragen.

Höhendaten machen aus einer flachen Karte etwas, womit ein Wanderer oder Radfahrer tatsächlich planen kann. Die vollständige Parameterliste finden Sie auf der Seite Dokumentation zur Höhenabfrage.