Distance d'un point à une ligne de grand cercle
Ce calculateur mesure la plus courte distance sphérique entre une coordonnée de latitude-longitude et le grand cercle complet défini par deux autres coordonnées.
Lancer gratuitement
Contrairement à un calcul de segment, il ne s'arrête pas aux points de définition : la ligne se poursuit autour du globe dans les deux sens. Le résultat comprend les mètres, les kilomètres et les degrés angulaires, utilise par défaut le rayon terrestre moyen et accepte un rayon personnalisé pour une autre sphère.
Définissez le point et la ligne de grand cercle infinie
Saisissez la coordonnée à étudier dans point_lat et point_lon, puis fournissez deux coordonnées appartenant à la ligne voulue. Il s'agit de line_start_lat avec line_start_lon et de line_end_lat avec line_end_lon. Elles déterminent un grand cercle, intersection de la sphère avec un plan passant par son centre. Le calcul traite ce cercle comme une ligne infinie : elle continue au-delà des deux points et fait finalement le tour du globe. Cette différence devient essentielle lorsque le pied de la perpendiculaire se trouve hors de l'arc court compris entre les points de définition. Un calcul de segment retiendrait alors une extrémité, tandis que cette capacité mesure toujours jusqu'au grand cercle prolongé. La latitude doit rester entre -90 et 90 degrés, et la longitude entre -180 et 180 degrés. Les deux points ne peuvent être ni identiques ni antipodaux, car ils ne définiraient pas un plan unique. Vous pouvez transmettre les degrés décimaux sous forme de nombres ou de chaînes numériques strictes.
Comprenez le calcul sphérique et ses résultats
Chaque coordonnée est convertie en vecteur unitaire tridimensionnel depuis le centre de la sphère. Le produit vectoriel des deux vecteurs de ligne donne une normale au plan du grand cercle. Après normalisation, la valeur absolue de son produit scalaire avec le vecteur du point fournit le sinus de la séparation angulaire perpendiculaire. L'arcsinus produit le plus petit angle non signé entre le point et le grand cercle. Cet angle multiplié par radius_m donne distance_m ; distance_km correspond à la même valeur divisée par mille. La réponse contient aussi angular_distance_deg pour les usages fondés sur les angles sphériques. Le rayon par défaut est de 6,371,008.8 mètres, soit le rayon terrestre moyen de l'IUGG, mais vous pouvez fournir un autre rayon positif. Il s'agit d'un modèle sphérique et non d'une géodésie ellipsoïdale. La représentation vectorielle évite la distorsion des longitudes sur un plan et traite naturellement les lignes franchissant l'antiméridien.
Interprétez correctement la distance minimale
La distance renvoyée est toujours positive ou nulle et répond à une question précise : à quelle distance le point étudié se trouve-t-il du lieu le plus proche sur l'ensemble du grand cercle ? Elle n'indique ni le côté gauche ou droit d'une route orientée, ni la progression jusqu'au pied perpendiculaire, ni si ce pied appartient à l'arc entre les coordonnées fournies. Ces questions nécessitent une distance transversale signée ou une logique de segment. Un résultat nul signifie que le point appartient au même plan de grand cercle dans la limite de la précision numérique, même très loin de l'arc fourni. Pour comparer avec un relevé local, rappelez-vous que la Terre est représentée par une sphère. La planète réelle est un ellipsoïde aplati, le relief ajoute de l'altitude et les trajets pratiques suivent parfois des routes ou des espaces autorisés. Conservez le rayon d'entrée pour assurer la reproductibilité. Inverser les points change le signe de la normale, jamais cette distance absolue.
Cas d’usage
Contrôler une trajectoire aérienne prolongée
Mesurez l'écart d'un point de cheminement à la géodésique complète définie par deux coordonnées, même au-delà de l'arc fourni.
Valider une géométrie cartographique mondiale
Vérifiez que des coordonnées censées partager un grand cercle respectent une tolérance sphérique sans projection plane.
Modéliser un autre corps sphérique
Indiquez un rayon personnalisé afin de calculer la distance analogue sur une planète, une lune, un globe ou une sphère abstraite.
Questions fréquentes
Quel est le prix d'une requête API ?
Chaque requête API coûte $0.002. Le calculateur peut fonctionner gratuitement et localement dans votre navigateur.
La ligne est-elle limitée à l'arc entre les deux points ?
Non. Le calcul utilise le grand cercle complet, prolongé au-delà des deux points dans les deux directions.
Pourquoi les points identiques ou antipodaux sont-ils refusés ?
Aucune de ces paires ne détermine un plan de grand cercle unique ; la ligne serait donc ambiguë.
Le calculateur utilise-t-il l'ellipsoïde WGS 84 ?
Non. Il utilise par défaut une sphère au rayon terrestre moyen de l'IUGG, ou le rayon personnalisé que vous fournissez.
L'inversion des deux points modifie-t-elle le résultat ?
Non. Elle inverse le signe de la normale au plan, mais la distance perpendiculaire absolue reste identique.
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/geo/point-to-line-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"point_lat":10,"point_lon":20,"line_start_lat":0,"line_start_lon":0,"line_end_lat":0,"line_end_lon":90}'const res = await fetch("https://api.kit.forhosting.com/geo/point-to-line-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"point_lat": 10,
"point_lon": 20,
"line_start_lat": 0,
"line_start_lon": 0,
"line_end_lat": 0,
"line_end_lon": 90
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/point-to-line-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"point_lat": 10,
"point_lon": 20,
"line_start_lat": 0,
"line_start_lon": 0,
"line_end_lat": 0,
"line_end_lon": 90
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/point-to-line-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"point_lat":10,"point_lon":20,"line_start_lat":0,"line_start_lon":0,"line_end_lat":0,"line_end_lon":90}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"point_lat":10,"point_lon":20,"line_start_lat":0,"line_start_lon":0,"line_end_lat":0,"line_end_lon":90}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/point-to-line-distance", 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
{
"point_lat": 10,
"point_lon": 20,
"line_start_lat": 0,
"line_start_lon": 0,
"line_end_lat": 0,
"line_end_lon": 90
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.point_to_line_distance",
"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.
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. |