Boîte englobante point-rayon
Un rayon de 5000 m autour de 40,7128, −74,006 devient les latitudes et longitudes minimales et maximales d'une boîte qui englobe tout le cercle, prête pour un filtre par plages avant le contrôle de la distance exacte. 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,7128
- Longitude
- -74,006
- Rayon
- 5 000
- Rayon m
- 5 000
- Rayon terrestre m
- 6 371 000
- Delta lat (°)
- 0,0449660803
- Lat. min.
- 40,6678339197
Les tuiles de carte, requêtes Overpass, préfiltres spatiaux de bases de données et aperçus de géorepère mobile ont tous besoin de ce même enveloppe min/max avant d’affiner avec un vrai contrôle de distance de grand cercle.
Du cercle de recherche au rectangle de coordonnées
Beaucoup de systèmes stockent et interrogent les lieux par plages de latitude et de longitude, et non par distance circulaire. Quand vous n'avez qu'un centre et un rayon, comme le rayon de livraison d'un magasin ou la zone de recherche d'un événement, il vous faut le rectangle qui englobe ce cercle. Le calcul suppose une Terre sphérique de rayon moyen 6371000 m : le rayon angulaire est le rayon en mètres divisé par cette constante, et la demi-hauteur en latitude correspond à cet angle en degrés. La demi-largeur en longitude est ce même angle divisé par le cosinus de la latitude du centre, pour que les mètres restent comparables d'est en ouest.
Quand l'utiliser et les pièges courants
Servez-vous de la boîte comme préfiltre rapide dans une recherche par plages, puis vérifiez la vraie distance sur la liste courte, car les coins du rectangle débordent du cercle. Près des pôles, la largeur augmente fortement ; si le cercle atteint un pôle, la boîte couvre toutes les longitudes. Quand un bord franchit le méridien de 180°, les valeurs sont normalisées et un indicateur signale que le bord ouest peut dépasser le bord est. Un rayon négatif est refusé plutôt que converti en valeur absolue, ce qui masquerait une erreur dans votre système. Un rayon nul est accepté.
Cas d’usage
Préfiltres de localisateur de magasins et de rayon de livraison
Convertissez le centre d’un magasin et le rayon de livraison en mètres en min/max lat/lon pour des clauses SQL BETWEEN, puis affinez avec un vrai contrôle de distance sur la liste courte.
Fenêtre d’affichage carte et préchargement de tuiles
Étant donné une épingle et une distance de buffer, calculez la boîte englobante utilisée pour demander des tuiles de carte, des marqueurs ou des entités Overpass sans sous-couvrir le cercle.
Questions fréquentes
En quelles unités est le rayon ?
En mètres. Convertissez les kilomètres en multipliant par 1000 (par exemple 5 km → 5000).
La boîte englobante est-elle la même chose que le cercle ?
Non. La boîte enferme entièrement le cercle sur un modèle sphérique de la Terre ; les points aux coins du rectangle peuvent se trouver hors du rayon. Utilisez la boîte comme préfiltre, puis appliquez un test de distance si vous avez besoin d’une coupe circulaire dure.
Quel modèle de la Terre est utilisé ?
C’est le défaut GIS courant pour des enveloppes rapides ; ce n’est pas un buffer géodésique complet de l’ellipsoïde WGS84.
Le calculateur de boîte englobante point-rayon est-il gratuit ?
L’outil navigateur est gratuit et s’exécute en local.
Pourquoi la boîte s'élargit-elle autant près des pôles ?
Parce que les méridiens convergent. La demi-largeur est-ouest est la demi-hauteur en latitude divisée par le cosinus de la latitude du centre : elle grandit vers les pôles. Si le cercle atteint un pôle, la boîte couvre toutes les longitudes, de −180 à 180.
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/geo/bounding-box \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":40.7128,"lon":-74.006,"radius":5000}'const res = await fetch("https://api.kit.forhosting.com/geo/bounding-box", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 40.7128,
"lon": -74.006,
"radius": 5000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/bounding-box",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 40.7128,
"lon": -74.006,
"radius": 5000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/bounding-box", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":40.7128,"lon":-74.006,"radius":5000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":40.7128,"lon":-74.006,"radius":5000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/bounding-box", 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
{
"lat": 40.7128,
"lon": -74.006,
"radius": 5000
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.bounding_box",
"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
min_lat | -90 |
max_lat | 90 |
min_lon | -180 |
max_lon | 180 |
max_radius_m | 20037508.342789244 |
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
Un calculateur de boîte englobante point-rayon transforme un centre géographique et une distance en le plus petit rectangle aligné sur les axes en latitude et longitude qui enferme entièrement la zone de recherche circulaire. Saisissez la latitude et la longitude en degrés décimaux du centre, plus un rayon non négatif en mètres ; l’outil renvoie min_lat, max_lat, min_lon, max_lon, un tableau bbox de style GeoJSON [west, south, east, north], le décalage angulaire de latitude et des notes pas à pas du modèle sphérique de rayon moyen de la Terre. Les rayons négatifs sont rejetés avec invalid_input pour que les appelants n’envoient jamais une fenêtre de recherche inversée ou sans sens. Le chemin est de l’arithmétique déterministe pure — pas de réseau, pas de graines aléatoires, pas de dépendance à l’horloge — de sorte que l’exécuteur gratuit du navigateur et l’API prépayée renvoient le même JSON après l’arrondi décimal fixe à chaque appel.
Ce qu’est une boîte englobante point-rayon et quand vous en avez besoin
Près des pôles le cosinus diminue et les portées de longitude s’élargissent ; si le cercle atteint un pôle ou si la demi-largeur de longitude atteint ou dépasse cent quatre-vingts degrés, cet outil signale une portée de longitude complète de moins cent quatre-vingts à plus cent quatre-vingts pour que la boîte ne sous-couvre jamais le cercle. Les enseignants, étudiants GIS et ingénieurs backend tiennent à ce qu’un rayon négatif soit une erreur dure : une distance signée n’est pas un rayon de recherche, et prendre silencieusement la valeur absolue masquerait des bogues client. Le rayon zéro est autorisé et produit une boîte dégénérée égale au centre, utile pour les tests unitaires et les appelants qui bornent des buffers vides. Une boîte englobante géographique est le rectangle défini par une latitude sud, une latitude nord, une longitude ouest et une longitude est. Lorsque la seule spécification dont vous disposez est un point centre et un rayon — rayon de localisateur de magasins, portée de livraison, recherche d’événements ou buffer de collier de faune — vous avez encore besoin de ce rectangle pour les systèmes qui indexent ou interrogent par plages de latitude et de longitude plutôt que par distance circulaire. La conversion utilise une Terre sphérique de rayon moyen 6,371,000 mètres : le rayon angulaire est le rayon physique divisé par cette constante ; la demi-largeur de latitude est cet angle en degrés ; la demi-largeur de longitude est le même angle divisé par le cosinus de la latitude du centre pour que les mètres restent approximativement égaux en étendue est-ouest. Lorsque le bord ouest ou est brut croise l’antiméridien, les longitudes sont normalisées dans l’intervalle fermé de moins cent quatre-vingts à plus cent quatre-vingts et un drapeau marque que min_lon peut être supérieur à max_lon après enroulement — le cas classique de l’antiméridien que les bibliothèques de cartes gèrent déjà.
Comment appeler l’API et ce qui revient
Les latitudes et longitudes absolues hors de ces plages fermées échouent à la validation avant toute trigonométrie. Envoyez un corps JSON avec trois nombres finis obligatoires : lat (alias latitude et center_lat) en degrés de moins quatre-vingt-dix à quatre-vingt-dix, lon (alias longitude, lng et center_lon) en degrés de moins cent quatre-vingts à cent quatre-vingts, et radius (alias radius_m et r) en mètres, non négatif et pas plus grand que la moitié de la circonférence terrestre. En succès la réponse renvoie lat, lon et radius_m arrondis ; fixe earth_radius_m à la constante 6371000 ; fixe delta_lat_deg à la demi-largeur de latitude en degrés ; fixe min_lat, max_lat, min_lon et max_lon de la boîte englobante ; fixe bbox au quadruplet min_lon, min_lat, max_lon, max_lat dans l’ordre ouest-sud-est-nord ; fixe les booléens full_longitude et crosses_antimeridian ; fixe message à un court résumé ; et fixe steps à un tableau ordonné de lignes de dérivation que vous pouvez montrer dans les journaux ou l’interface. L’échec de validation — champs manquants, nombres non finis, latitude ou longitude hors plage, rayon négatif ou rayon excessif — renvoie invalid_input et n’est jamais facturé. Le tarif est un flat $0.002 par requête réussie avec unité item et prix unitaire marginal zéro.
Conseils pratiques, limites et recherches connexes
Préférez les mètres pour le rayon afin que les clients ne mélangent pas kilomètres et miles statutaires ; convertissez les kilomètres en multipliant par mille avant l’appel. Souvenez-vous qu’une boîte de degrés alignée sur les axes est un préfiltre : les points aux coins du rectangle peuvent être plus loin que le rayon du centre, affinez donc avec haversine ou distance géodésique si vous avez besoin d’une coupe circulaire dure. Cette page cible ceux qui cherchent une boîte englobante point rayon, min max lat lon depuis un rayon ou un calculateur d’enveloppe de géorepère ; ce n’est pas un outil de distance de grand cercle, ni un encodeur geohash, ni un buffer de polygone. Préférez cette capacité lorsque vous avez déjà un centre et des mètres et n’avez besoin que de l’enveloppe rectangulaire ; si votre source est un polygone ou un ensemble multipoint, calculez plutôt une vraie bbox multipoint. Gardez le centre dans les plages publiées de latitude et de longitude ; n’envoyez pas de coordonnées web-mercator ou projetées. Près des pôles attendez full_longitude vrai pour des rayons modestes car les degrés de longitude se réduisent à zéro mètre. Pour les requêtes centrées sur le Pacifique près de l’antiméridien, vérifiez crosses_antimeridian et divisez la requête en deux intervalles de longitude lorsque votre base de données ne peut pas exprimer une plage enroulée. Exemples appariés : New York près de la latitude 40.71 et de la longitude moins 74.01 avec un rayon de cinq kilomètres pour une recherche de magasins à l’échelle urbaine ; un appel de rayon zéro qui renvoie min et max égaux au centre ; et un rayon délibérément négatif qui démontre le chemin dur invalid_input. Les tâches échouées qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui garde les scripts exploratoires bon marché lorsque les apprenants envoient délibérément des rayons négatifs. Les contrôles aller-retour sont faciles : aux latitudes moyennes recalculez le delta de latitude comme rayon sur R fois cent quatre-vingts sur pi et confirmez que min_lat et max_lat correspondent dans l’arrondi publié à douze décimales.
Cas d'intégration
Tests unitaires pour géorepères et API spatiales
Générez des cas déterministes positifs, de rayon zéro, polaires et de rayon négatif pour des fixtures golden dans le code de géorepère mobile et backend.
Questions techniques
Que se passe-t-il près des pôles ou de l’antiméridien ?
Si le cercle atteint un pôle ou si la demi-largeur de longitude est d’au moins 180°, full_longitude est vrai et les longitudes couvrent −180 à 180. Si la boîte enroule l’antiméridien, crosses_antimeridian est vrai et min_lon peut être supérieur à max_lon après normalisation.