GPS-EXIF eines Bildes auslesen
Machen Sie aus den Grad, Minuten und Sekunden der Kamera Dezimalkoordinaten, die jede Karte versteht, etwa 40,446333333333 und -79,982333333333. Der Buchstabe N, S, E oder W bestimmt das Vorzeichen, Süden und Westen werden also negativ. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Breitengrad
- 40, 26, 46,8
- Breitengrad-Referenz
- N
- Längengrad
- 79, 58, 56,4
- Längengrad-Referenz
- W
- Breitengrad
- 40,4463333333
- Längengrad
- -79,9823333333
- Breitengrad (DMS)
- 40, 26, 46,8
- Längengrad (DMS)
- 79, 58, 56,4
Bildmetadaten speichern einen Standort häufig in vier getrennten GPS-EXIF-Tags statt als vertraute Dezimalkoordinaten. Dieser Parser übernimmt Grad, Minuten und Sekunden für Breite und Länge samt Referenzbuchstaben, prüft die Rohwerte und liefert vorzeichenbehaftete Dezimalkoordinaten. Entwicklungs-, Archiv- und Untersuchungsteams erhalten damit eine deterministische Umrechnung direkt hinter ihrem EXIF-Leser. Norden und Osten ergeben positive, Süden und Westen negative Werte.
Ordnen Sie GPS-EXIF-Rohdaten den Eingabefeldern zu
EXIF beschreibt den Aufnahmeort mit GPSLatitude, GPSLatitudeRef, GPSLongitude und GPSLongitudeRef. Eine EXIF-Bibliothek liefert das erste und dritte Tag meist als drei Zahlen in der Reihenfolge Grad, Minuten und Sekunden. Verwenden Sie in den DMS-Werten kein Minuszeichen, denn die Referenz bestimmt das Vorzeichen.
Kleinbuchstaben werden in Großbuchstaben vereinheitlicht. Jedes Array muss genau drei endliche Zahlen enthalten. Minuten und Sekunden müssen mindestens null und kleiner als sechzig sein.
Der Breitengrad ist auf neunzig, der Längengrad auf einhundertachtzig Grad begrenzt; am jeweiligen Maximum müssen Minuten und Sekunden null sein. Diese Prüfungen erkennen fehlerhafte Metadaten, bevor sie eine Karte, Datenbank oder einen Geodatenindex erreichen. Das Werkzeug erwartet bereits extrahierte Tags und dekodiert die Bilddatei nicht selbst.
Setzen Sie es deshalb hinter dem EXIF-Leser Ihrer Anwendung ein.
Verstehen Sie Umrechnung und Referenzprüfung
Für jede Achse addiert der Parser Grad, durch sechzig geteilte Minuten und durch dreitausendsechshundert geteilte Sekunden. Anschließend wendet er die Richtung an: N lässt die Breite positiv, S macht sie negativ, E lässt die Länge positiv und W macht sie negativ. So kann ein beschädigtes Tag ein Foto nicht unbemerkt über Äquator oder Nullmeridian verschieben.
Die Antwort enthält neben beiden Dezimalkoordinaten die normalisierten Referenzen und geprüften DMS-Arrays. Alle Schritte sind deterministische Arithmetik ohne Netzwerk, Uhrzeit, Zufall oder externes Modell.
Nutzen Sie Fotokoordinaten verantwortungsvoll
Nach der Umrechnung können Sie die Koordinaten in GeoJSON schreiben, auf einer Karte anzeigen, für Umkreissuchen indexieren oder mit anderen Standortdaten vergleichen. Normalisierte Referenzen und DMS-Arrays erleichtern spätere Prüfungen. Behandeln Sie fehlende oder ungültige Tags als Qualitätsfehler und nicht als null, denn die Position null, null existiert tatsächlich.
Der Parser lehnt nicht endliche Zahlen, unvollständige Arrays, Komponenten außerhalb der Grenzen und Punkte jenseits von Polen oder Antimeridian ab. Er bestätigt weder den tatsächlichen Kamerastandort noch korrigiert er Datumsunterschiede oder bewertet Datenschutzrisiken. Prüfen Sie vor einer Veröffentlichung, ob präzise Koordinaten offengelegt werden dürfen.
Anwendungsfälle
Ein Fotoarchiv vereinheitlichen
Wandeln Sie extrahierte GPS-EXIF-Arrays vor der Indexierung einer Bildsammlung in konsistente Dezimalkoordinaten um.
Fotos auf einer Karte platzieren
Überführen Sie Kamerametadaten in vorzeichenbehaftete Breiten- und Längengrade für Karten und GeoJSON.
Eine EXIF-Pipeline prüfen
Lehnen Sie beschädigte Referenzen und unmögliche DMS-Komponenten vor der Produktionsspeicherung ab.
Häufige Fragen
Liest dieses Werkzeug die Bilddatei?
Nein. Es wandelt GPS-EXIF-Tags um, die Sie zuvor mit einem EXIF-Leser extrahiert haben.
Welche Referenzbuchstaben sind gültig?
Für die Breite gelten N oder S, für die Länge E oder W, unabhängig von Großschreibung.
Wie werden DMS-Werte umgerechnet?
Der Betrag ist Grad plus Minuten geteilt durch 60 plus Sekunden geteilt durch 3600. S und W machen das Ergebnis negativ.
Dürfen Minuten oder Sekunden 60 sein?
Nein. Sie müssen mindestens null und kleiner als 60 sein. Normalisieren Sie Überträge vor der Analyse.
Muss ich für Süden oder Westen ein Minuszeichen setzen?
Nein. Geben Sie Grad, Minuten und Sekunden als positive Zahlen ein und überlassen Sie die Richtung dem Referenzbuchstaben: S macht die Breite negativ, W macht die Länge negativ.
Dürfen Minuten oder Sekunden den Wert 60 erreichen?
Nein. Minuten und Sekunden müssen mindestens null und kleiner als sechzig sein. Liegt ein Wert genau auf dem Höchstwert, also neunzig Grad Breite oder hundertachtzig Grad Länge, müssen Minuten und Sekunden null sein.
Verwandte Tools
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/image/exif-gps-parse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":[40,26,46.8],"latitude_ref":"N","longitude":[79,58,56.4],"longitude_ref":"W"}'const res = await fetch("https://api.kit.forhosting.com/image/exif-gps-parse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": [
40,
26,
46.8
],
"latitude_ref": "N",
"longitude": [
79,
58,
56.4
],
"longitude_ref": "W"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/exif-gps-parse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": [
40,
26,
46.8
],
"latitude_ref": "N",
"longitude": [
79,
58,
56.4
],
"longitude_ref": "W"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/exif-gps-parse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":[40,26,46.8],"latitude_ref":"N","longitude":[79,58,56.4],"longitude_ref":"W"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":[40,26,46.8],"latitude_ref":"N","longitude":[79,58,56.4],"longitude_ref":"W"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/exif-gps-parse", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"latitude": [
40,
26,
46.8
],
"latitude_ref": "N",
"longitude": [
79,
58,
56.4
],
"longitude_ref": "W"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.exif_gps_parse",
"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.
Limits
max_mb | 15 |
max_megapixels | 12 |
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. |
Technische Hinweise
Ordnen Sie GPS-EXIF-Rohdaten den Eingabefeldern zu
Übergeben Sie diese Arrays als latitude und longitude sowie die zugehörigen Buchstaben als latitude_ref und longitude_ref.
Verstehen Sie Umrechnung und Referenzprüfung
Das Ergebnis wird für stabiles JSON auf zwölf Dezimalstellen gerundet. Die Referenzprüfung ist bewusst streng: latitude_ref erlaubt ausschließlich N oder S, longitude_ref ausschließlich E oder W. Andere Buchstaben, Wörter, leere Zeichenfolgen oder eine Referenz der falschen Achse führen zu invalid_input; es wird nichts erraten. Daher verhält sich dieselbe Funktion im Browser, API-Worker, in Tests und in Offline-JavaScript-Integrationen identisch.
Nutzen Sie Fotokoordinaten verantwortungsvoll
Halten Sie das Paar zusammen und beachten Sie die Achsenreihenfolge: Diese Antwort nennt latitude vor longitude, manche Geometrieformate verwenden jedoch die umgekehrte Folge. Verarbeiten Sie automatisiert nur vollständige Vierer-Sätze, behandeln Sie invalid_input als abgelehnten Datensatz und bewahren Sie die Bildherkunft auf. Im Browser läuft die Berechnung lokal; API-Automatisierung kostet $0.002 je erfolgreichem Element.
Technische Fragen
Was kostet ein API-Aufruf?
Eine erfolgreiche Anfrage kostet $0.002 pro Element. Der Browser führt dieselbe deterministische Rechnung lokal aus.