Analyser le GPS EXIF d’une image
Transformez les degrés, minutes et secondes enregistrés par l'appareil en coordonnées décimales lisibles par une carte, comme 40,446333333333 et -79,982333333333. La lettre N, S, E ou W donne le signe : le sud et l'ouest sortent en négatif. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Latitude
- 40, 26, 46,8
- Référence de latitude
- N
- Longitude
- 79, 58, 56,4
- Référence de longitude
- W
- Latitude
- 40,4463333333
- Longitude
- -79,9823333333
- Latitude (DMS)
- 40, 26, 46,8
- Longitude (DMS)
- 79, 58, 56,4
Les métadonnées d’une image enregistrent souvent sa position dans quatre balises GPS EXIF distinctes plutôt que sous forme de coordonnées décimales. Les équipes de développement, d’archivage et d’enquête disposent ainsi d’une conversion déterministe à placer après un lecteur EXIF. Le nord et l’est sont positifs, tandis que le sud et l’ouest sont négatifs.
Associez les balises GPS EXIF brutes aux champs
EXIF décrit le lieu de prise de vue avec GPSLatitude, GPSLatitudeRef, GPSLongitude et GPSLongitudeRef. Une bibliothèque EXIF fournit généralement la première et la troisième balise sous la forme de trois nombres ordonnés en degrés, minutes et secondes. N’ajoutez pas de signe négatif aux valeurs DMS : la référence détermine le signe.
Les minuscules sont normalisées en majuscules. Chaque tableau doit contenir exactement trois nombres finis. Les minutes et secondes doivent être supérieures ou égales à zéro et strictement inférieures à soixante.
L’outil attend des balises déjà extraites et ne décode pas lui-même le fichier image ; placez-le après le lecteur EXIF de votre application.
Exploitez prudemment les coordonnées des photos
Après conversion, vous pouvez écrire les coordonnées dans GeoJSON, les afficher sur une carte, les indexer pour une recherche de proximité ou les comparer à d’autres relevés. Conserver les références normalisées et les tableaux DMS facilite les audits. Traitez une balise absente ou invalide comme un défaut de qualité, jamais comme zéro, car la position zéro, zéro existe.
L’analyseur refuse les nombres non finis, tableaux incomplets, composantes hors limites et positions impossibles au-delà des pôles ou de l’antiméridien. Il ne confirme pas la position réelle de l’appareil, ne corrige pas les datums et n’évalue pas la confidentialité. Avant publication, vérifiez si des coordonnées précises peuvent être révélées.
Cas d’usage
Normaliser des archives photographiques
Convertissez les tableaux GPS EXIF extraits en coordonnées décimales cohérentes avant l’indexation d’une collection.
Contrôler une ingestion EXIF
Refusez les références endommagées et composantes DMS impossibles avant le stockage en production.
Questions fréquentes
Cet outil lit-il le fichier image ?
Non. Il convertit les balises GPS EXIF que vous avez déjà extraites avec un lecteur EXIF.
Comment les valeurs DMS sont-elles converties ?
La valeur absolue égale les degrés plus les minutes divisées par 60 et les secondes par 3600. S et W rendent le résultat négatif.
Les minutes ou secondes peuvent-elles valoir 60 ?
Non. Elles doivent être au moins nulles et inférieures à 60. Normalisez toute retenue avant l’analyse.
Faut-il mettre un signe moins pour le sud ou l'ouest ?
Non. Saisissez les degrés, minutes et secondes en nombres positifs et laissez la lettre de référence fixer le sens : S rend la latitude négative. De même, W rend la longitude négative.
Quelles lettres de référence sont acceptées ?
N ou S pour la latitude. E ou W pour la longitude. Les minuscules sont mises en majuscules, mais toute autre lettre, ou une lettre placée sur le mauvais axe, est refusée au lieu d'être devinée.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"latitude": [
40,
26,
46.8
],
"latitude_ref": "N",
"longitude": [
79,
58,
56.4
],
"longitude_ref": "W"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.exif_gps_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 15 |
max_megapixels | 12 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Cet analyseur reçoit les degrés, minutes et secondes de latitude et de longitude avec leurs lettres de référence, contrôle les valeurs brutes et renvoie deux coordonnées décimales signées.
Associez les balises GPS EXIF brutes aux champs
Envoyez ces tableaux dans latitude et longitude, puis les lettres correspondantes dans latitude_ref et longitude_ref. La latitude est limitée à quatre-vingt-dix degrés et la longitude à cent quatre-vingts ; à ces maxima, minutes et secondes doivent être nulles. Ces contrôles repèrent les métadonnées incorrectes avant leur arrivée dans une carte, une base ou un index géospatial.
Comprenez la conversion et le contrôle des références
Pour chaque axe, l’analyseur additionne les degrés, les minutes divisées par soixante et les secondes divisées par trois mille six cents. Une référence corrompue ne peut donc pas déplacer silencieusement une photo au-delà de l’équateur ou du méridien origine. La réponse contient les références normalisées et les tableaux DMS validés avec les coordonnées décimales. Il applique ensuite la direction : N conserve une latitude positive, S la rend négative, E conserve une longitude positive et W la rend négative. Le résultat est arrondi à douze décimales afin de stabiliser le JSON. Le contrôle des références est strict : latitude_ref accepte uniquement N ou S, et longitude_ref uniquement E ou W. Toute autre lettre, expression, chaîne vide ou lettre du mauvais axe produit invalid_input sans supposition. Le calcul est entièrement déterministe, sans réseau, horloge, hasard ni modèle externe ; la fonction se comporte donc de façon identique dans le navigateur, l’API, les tests et les intégrations JavaScript hors ligne.
Exploitez prudemment les coordonnées des photos
Gardez la paire ensemble et surveillez l’ordre des axes : cette réponse présente latitude avant longitude, alors que certains formats géométriques font l’inverse. Dans un pipeline, exigez les quatre balises, traitez invalid_input comme un rejet et conservez la provenance de l’image. Le navigateur calcule localement ; l’automatisation par API coûte $0.002 par élément valide.
Cas d'intégration
Placer des photos sur une carte
Transformez les métadonnées de l’appareil en latitude et longitude signées pour les cartes et GeoJSON.
Questions techniques
Quelles lettres de référence sont admises ?
La latitude accepte N ou S et la longitude E ou W, sans distinction de casse. Toute autre référence produit invalid_input.
Quel est le prix d’un appel API ?
Une requête réussie coûte $0.002 par élément. Le navigateur exécute localement le même calcul déterministe.