ECEF in lokale ENU-Koordinaten umrechnen
Dieser ECEF-zu-ENU-Rechner wandelt eine erdzentrierte, erdfeste XYZ-Position in Ost-, Nord- und Höhenabstände relativ zu einem gewählten lokalen Ursprung um.
Im Browser ausführen – kostenlos
Geben Sie die ECEF-Zielkoordinaten sowie geodätische Breite, Länge und optional die ellipsoidische Höhe des Referenzpunkts ein. Der Rechner bestimmt die ECEF-Position des Ursprungs auf WGS 84, zieht sie vom Ziel ab und dreht den resultierenden Vektor in das lokale Tangentialsystem. Sie können außerdem ein anderes Ellipsoid angeben und die Ausgabegenauigkeit wählen.
Legen Sie ECEF-Punkt und lokalen Ursprung einheitlich fest
Eine ECEF-Koordinate beschreibt eine Position in einem kartesischen, mit der rotierenden Erde verbundenen System. Die X-Achse verläuft durch null Grad Breite und null Grad Länge, die Y-Achse durch null Grad Breite und 90 Grad östliche Länge, und die Z-Achse zeigt zum Nordpol. Geben Sie alle drei Zielkoordinaten in Metern ein. Das lokale System benötigt ebenfalls einen Ursprung, der hier durch geodätische Breite, Länge und ellipsoidische Höhe festgelegt wird. Breite und Länge werden in Dezimalgrad angegeben; die Höhe wird entlang der Ellipsoidnormalen und nicht über dem mittleren Meeresspiegel gemessen. Dieser Unterschied ist wichtig: Eine orthometrische Kartenhöhe ist nicht automatisch eine ellipsoidische Höhe, da Geoid und Referenzellipsoid voneinander abweichen. Ziel und Ursprung müssen demselben Datum zugeordnet sein. Standardmäßig werden die große Halbachse und die inverse Abplattung von WGS 84 verwendet, was für übliche GNSS-Koordinaten geeignet ist. Nutzt Ihre Quelle ein regionales Datum oder ein anderes Referenzellipsoid, geben Sie vor der Auswertung der lokalen Verschiebung dessen passende Parameter ein.
Verstehen Sie die Drehung nach Ost, Nord und oben
Die Umrechnung besteht aus zwei deterministischen Schritten. Zunächst wandelt der Rechner die geodätische Referenzposition mit dem gewählten Ellipsoid in ECEF um und zieht diesen Ursprung von der XYZ-Zielposition ab. Dadurch entsteht ein Verschiebungsvektor und keine weitere absolute Position. Anschließend wird der Vektor anhand der Referenzbreite und -länge gedreht. Ost liegt tangential zum Breitenkreis und ist bei zunehmender Länge positiv. Nord liegt tangential zum Meridian und ist bei zunehmender geodätischer Breite positiv. Oben verläuft normal zum Referenzellipsoid und ist nach außen positiv. Die drei Ergebnisse sind daher vorzeichenbehaftete Entfernungen in Metern. Ein negativer Ostwert bedeutet westlich des Ursprungs, ein negativer Nordwert südlich davon und ein negativer Höhenwert unterhalb seiner Tangentialebene. ENU ist ein lokales lineares System, dessen Komponenten in begrenzten Gebieten besonders anschaulich sind. Über große Entfernungen kann oben erheblich von einer einfachen Höhendifferenz abweichen, weil die Erdkrümmung die Richtung der lokalen Vertikalen verändert.
Nutzen Sie das Ergebnis für Ortung und technische Aufgaben
Lokale ENU-Koordinaten eignen sich, wenn eine Anwendung relative Bewegung oder Geometrie statt großer planetarer XYZ-Werte benötigt. Vermessungssoftware kann Beobachtungen um eine Station ausdrücken, Robotiksysteme können Erkennungen in einer um eine Basis zentrierten Karte einordnen, und GNSS-Auswertungen können eine gemessene Antennenposition mit einer bekannten Referenz vergleichen. Wählen Sie den Ursprung bewusst und speichern Sie dessen Breite, Länge, Höhe, Ellipsoid und Datum zusammen mit dem Ergebnis; ohne diese Metadaten lässt sich ein ENU-Tripel nicht als globale Position rekonstruieren. Die Dezimaloption steuert die sichtbare Rundung von null bis zwölf Stellen, während intern vor dem Runden mit Gleitkommaarithmetik gerechnet wird. Zusätzliche Stellen erzeugen keine Genauigkeit, die den Eingaben fehlt. Zur Qualitätskontrolle rechnen Sie die exakten ECEF-Koordinaten des Ursprungs um und prüfen, ob Ost, Nord und oben innerhalb der gewünschten Genauigkeit null sind. Testen Sie außerdem einen bekannten Versatz in Ursprungsnähe und kontrollieren Sie die Vorzeichen. Die Berechnung ist rein, stellt keine Netzwerkanfragen und liefert für dieselben Eingaben stets dasselbe Ergebnis.
Anwendungsfälle
Eine GNSS-Vermessung zentrieren
Drücken Sie Empfängerpositionen als verständliche lokale Versätze von einem vermessenen Referenzpunkt aus.
Ein lokales Robotiksystem aufbauen
Wandeln Sie erdfeste Positionen rund um eine Fahrzeugbasis oder Feldstation in Ost-, Nord- und Höhenkoordinaten um.
Antennenverschiebungen untersuchen
Vergleichen Sie die ECEF-Position einer Antenne mit einem bekannten Ursprung und prüfen Sie horizontale und vertikale Anteile getrennt.
Häufige Fragen
Was kostet die Umrechnung?
Jede API-Anfrage kostet $0.002. Die Browserversion kann ohne Netzwerkberechnung lokal ausgeführt werden.
Welches Erdmodell wird standardmäßig verwendet?
Voreingestellt sind die große WGS-84-Halbachse von 6378137 Metern und die inverse Abplattung von 298.257223563.
Ist die Referenzhöhe optional?
Ja. Standardmäßig beträgt sie null Meter über dem gewählten Referenzellipsoid.
Kann ich eine Höhe über dem mittleren Meeresspiegel eingeben?
Nicht unmittelbar, sofern sie nicht der ellipsoidischen Höhe Ihres Ablaufs entspricht. Rechnen Sie die orthometrische Höhe zuerst mit einem geeigneten Geoidmodell um.
Warum ist oben nicht einfach die Höhendifferenz?
Oben ist die Komponente entlang der Ellipsoidnormalen am Ursprung. Bei getrennten Punkten unterscheidet sie sich wegen der Erdkrümmung von einer einfachen Subtraktion.
Welche Einheiten verwendet die Ausgabe?
Ost, Nord und oben werden passend zu den ECEF-Koordinaten und Ellipsoidabmessungen in Metern ausgegeben.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/geo/ecef-to-enu \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":6378137,"y":100,"z":50,"ref_lat_deg":0,"ref_lon_deg":0}'const res = await fetch("https://api.kit.forhosting.com/geo/ecef-to-enu", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": 6378137,
"y": 100,
"z": 50,
"ref_lat_deg": 0,
"ref_lon_deg": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/ecef-to-enu",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": 6378137,
"y": 100,
"z": 50,
"ref_lat_deg": 0,
"ref_lon_deg": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/ecef-to-enu", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":6378137,"y":100,"z":50,"ref_lat_deg":0,"ref_lon_deg":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":6378137,"y":100,"z":50,"ref_lat_deg":0,"ref_lon_deg":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/ecef-to-enu", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"x": 6378137,
"y": 100,
"z": 50,
"ref_lat_deg": 0,
"ref_lon_deg": 0
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.ecef_to_enu",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |