ForHosting KIT · Outils pour développeurs

K plus proches voisins par distance orthodromique

Trouvez les points géographiques les plus proches d’une coordonnée sans déployer de base spatiale.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Indiquez une latitude, une longitude, une liste de coordonnées candidates et le nombre de réponses souhaité. La capacité calcule la distance orthodromique de chaque candidat, classe les résultats du plus proche au plus éloigné et renvoie les k premiers avec leur indice source et leur libellé éventuel. Son ordre déterministe convient à la recherche de lieux, à la préparation d’itinéraires, aux contrôles de proximité et aux traitements de données reproductibles.

Préparez une requête et des candidats explicites

Commencez par une coordonnée de requête en degrés décimaux et une liste comprenant entre un et dix mille points candidats. La latitude doit être comprise entre -90 et 90, et la longitude entre -180 et 180. Chaque candidat respecte les mêmes règles et peut porter un libellé, comme un magasin, un dépôt, un capteur ou une ville. Ce libellé est recopié dans le résultat sans jamais influencer le classement. Choisissez k comme un entier positif inférieur ou égal au nombre de candidats. Ce contrat précis évite les recherches partielles ambiguës et signale rapidement les enregistrements incorrects. Conservez le format en degrés décimaux habituel des cartes web et des exports GPS. Convertissez au préalable toute source exprimée en degrés, minutes et secondes ou dans un système projeté. Si deux distances sont égales, l’ordre initial des candidats les départage afin de produire le même résultat à chaque exécution.

Comprenez le classement orthodromique

Le calcul représente la Terre par une sphère de rayon moyen 6,371.0088 kilomètres. Pour chaque candidat, il applique la relation de haversine et calcule l’angle central avec atan2, ce qui reste stable pour les trajets très courts comme pour des points presque opposés. La valeur distance_km est arrondie à six décimales avant le tri croissant. Il s’agit d’une distance à la surface du globe, et non d’une ligne traversant la Terre, d’un trajet routier ou d’une mesure dans une projection locale. Le passage de longitude près de la ligne de changement de date et les pôles sont gérés naturellement. Ce modèle sphérique convient à la recherche mondiale, à la découverte, à une première affectation et à la constitution d’une liste restreinte. Pour une précision géodésique ellipsoïdale, des routes, l’altitude, des frontières ou des obstacles, utilisez cette liste comme présélection avant un calcul spécialisé. L’indice source permet de retrouver le dossier initial, même sans libellé unique.

Insérez la sélection dans un traitement plus large

Une liste de voisins proches constitue souvent le début d’une décision. Un outil de localisation peut demander les cinq agences les plus proches, puis filtrer selon les horaires ou les stocks. Un service logistique peut présélectionner des dépôts avant de transmettre quelques candidats à un moteur routier. Un tableau environnemental peut rattacher une observation aux capteurs voisins tout en conservant les distances pour ses contrôles. La fonction n’utilise ni réseau, ni hasard, ni état enregistré, ni heure courante : une entrée identique donne donc une sortie identique. Vous pouvez ainsi mettre les résultats en cache, tester une intégration avec des exemples fixes ou reproduire un classement lors d’un audit. La limite déclarée rend l’exécution prévisible, car chaque candidat est mesuré une fois avant le tri du jeu borné. Une base indexée sera préférable pour une collection immense ou très changeante. Pour une liste compacte transmise avec chaque demande, cette capacité évite toute configuration et fournit un objet JSON directement réutilisable.

Présélectionnez des agences

Renvoyez les magasins ou centres les plus proches avant de filtrer selon les stocks, horaires ou rendez-vous.

Rattachez des relevés aux capteurs

Trouvez les stations de mesure voisines et conservez distances et indices pour une validation ultérieure.

Préparez des candidats d’itinéraire

Réduisez une liste de dépôts aux points les plus proches avant de demander des calculs routiers plus coûteux.

Quel est le prix d’une requête ?

Chaque requête API coûte $0.002. Le même calcul déterministe peut aussi s’exécuter dans le navigateur.

Quelle formule de distance est appliquée ?

Le calcul orthodromique repose sur haversine et sur le rayon terrestre moyen de 6,371.0088 kilomètres.

Comment les distances égales sont-elles classées ?

En cas d’égalité, l’ordre d’entrée est conservé grâce aux indices source commençant à zéro.

k peut-il dépasser le nombre de candidats ?

Non. k doit être un entier positif inférieur ou égal au nombre de points fournis.

La distance routière est-elle calculée ?

Non. Le calcul est sphérique et ignore routes, temps de trajet, altitude, frontières et obstacles.

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.

POSThttps://api.kit.forhosting.com/geo/k-nearest-neighbors

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é.

curl -X POST https://api.kit.forhosting.com/geo/k-nearest-neighbors \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lat":40.4168,"lon":-3.7038,"points":[{"label":"Toledo","lat":39.8628,"lon":-4.0273},{"label":"Segovia","lat":40.9429,"lon":-4.1088},{"label":"Guadalajara","lat":40.6337,"lon":-3.1674}],"k":2}'
{
  "lat": 40.4168,
  "lon": -3.7038,
  "points": [
    {
      "label": "Toledo",
      "lat": 39.8628,
      "lon": -4.0273
    },
    {
      "label": "Segovia",
      "lat": 40.9429,
      "lon": -4.1088
    },
    {
      "label": "Guadalajara",
      "lat": 40.6337,
      "lon": -3.1674
    }
  ],
  "k": 2
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.k_nearest_neighbors",
  "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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_items10000
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →