Verifica geofence circolare
Questo strumento per geofence circolari stabilisce se un punto di latitudine e longitudine si trova all'interno, esattamente sul confine oppure all'esterno di un raggio intorno a una coordinata centrale.
Esegui gratis nel browser
Calcola la distanza ortodromica con la formula di Haversine, la confronta con il raggio in metri e restituisce un margine con segno che mostra lo spazio residuo. Un margine positivo indica che il punto è interno, zero identifica il confine e un margine negativo comunica di quanto il punto è esterno. Il calcolo è deterministico e non richiede mappe, ricerche di dispositivi o richieste di rete.
Definisca con precisione punto, centro e raggio
Un geofence circolare comprende tre elementi essenziali: latitudine centrale, longitudine centrale e raggio non negativo misurato in metri. La latitudine e la longitudine distinte del punto identificano la posizione che Lei desidera verificare. Fornisca tutte le coordinate in gradi decimali rispettando i normali intervalli geografici WGS84: latitudine da meno novanta a novanta e longitudine da meno centottanta a centottanta. Non invii coordinate cartografiche proiettate, stringhe in gradi, minuti e secondi o un raggio in chilometri senza prima convertirlo. Per esempio, una zona di consegna con estensione di cinque chilometri richiede radius_m pari a 5000. Lo strumento accetta zero come raggio valido; in quel caso è interno soltanto un punto con coordinate identiche al centro. I valori mancanti, i numeri non finiti, le coordinate fuori dall'intervallo legale e i raggi negativi vengono rifiutati, anziché correggere silenziosamente un probabile errore d'integrazione. Le longitudini sui lati opposti dell'antimeridiano funzionano senza logica speciale nel client, perché la formula trigonometrica usa naturalmente la separazione sferica più breve.
Interpreti appartenenza, distanza e margine con segno
La risposta contiene quattro campi compatti. Il valore booleano inside è vero quando la distanza calcolata è minore o uguale al raggio; di conseguenza, un punto esattamente sul confine appartiene al geofence. Il campo distance_m rappresenta la distanza ortodromica fra centro e punto su una sfera terrestre media con raggio di 6,371,000 metri. radius_m ripete il raggio convalidato, mentre margin_m sottrae la distanza dal raggio. Il margine con segno è spesso più utile di un semplice booleano: 240 significa che il punto è interno con circa 240 metri disponibili, zero indica il bordo e meno 85 significa che è circa 85 metri all'esterno. Le distanze restituite vengono arrotondate a sei cifre decimali per una serializzazione stabile, ma la decisione inside utilizza il calcolo completo non arrotondato. Pertanto, un valore visualizzato dopo l'arrotondamento non cambia il confronto reale. Per regole di instradamento o fatturazione, scelga prima una tolleranza operativa oppure confronti il margine restituito con la propria soglia di sicurezza.
Usi il risultato in sicurezza nei flussi reali
Le verifiche circolari sono adatte al rilevamento degli arrivi, all'idoneità delle consegne, agli avvisi per apparecchiature vicine e a zone di accesso approssimative. Non rappresentano confini catastali e non considerano strade, muri, altitudine, piani degli edifici o incertezza del GPS. La posizione di un telefono può oscillare di diversi metri; perciò, le applicazioni in produzione richiedono spesso letture ripetute, un limite di precisione o isteresi prima di avviare un'azione irreversibile. Per esempio, un flusso di arrivo potrebbe entrare soltanto quando margin_m supera venti metri e uscire quando scende sotto meno venti, evitando rapidi cambiamenti vicino al bordo. Il modello sferico di Haversine è coerente e rapido in tutto il mondo, anche presso i poli e l'antimeridiano, ma è un'approssimazione e non un calcolo topografico ellissoidale. Gli stessi input restituiscono sempre lo stesso output, perché il risolutore non usa rete, ora corrente, casualità o database cartografici esterni. L'esecuzione interattiva è disponibile nel browser e ogni richiesta API automatizzata costa $0.002. Conservi le coordinate originali insieme al risultato qualora una verifica successiva debba motivare la decisione.
Casi d'uso
Idoneità alla consegna
Verifichi se la coordinata del cliente rientra nel raggio di servizio e usi il margine per spiegare la vicinanza al limite.
Logica di arrivo e partenza
Valuti le letture del dispositivo rispetto a un geofence e applichi una soglia positiva o negativa per ridurre le oscillazioni sul bordo.
Avvisi di prossimità degli asset
Stabilisca se la posizione comunicata di un asset è entrata in una zona sorvegliata senza interrogare un fornitore esterno di mappe.
Domande frequenti
Che cosa indica un margine positivo?
Il punto è interno al geofence e margin_m è la distanza residua fino al confine circolare.
Un punto sul confine è considerato interno?
Sì. L'appartenenza usa una distanza minore o uguale al raggio; quindi il confine esatto restituisce inside vero e margine zero.
Quali unità vengono utilizzate?
Raggio, distanza calcolata e margine sono espressi in metri. Latitudine e longitudine sono in gradi decimali.
Quale formula di distanza viene applicata?
Il risolutore usa la formula di Haversine su una sfera terrestre media con raggio di 6,371,000 metri.
Quanto costa una verifica tramite API?
Ogni richiesta API completata costa $0.002. L'esecutore deterministico nel browser consente anche verifiche interattive.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/geo/geofence-circle-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"point_lat":40.73061,"point_lon":-73.935242,"center_lat":40.7128,"center_lon":-74.006,"radius_m":10000}'const res = await fetch("https://api.kit.forhosting.com/geo/geofence-circle-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"point_lat": 40.73061,
"point_lon": -73.935242,
"center_lat": 40.7128,
"center_lon": -74.006,
"radius_m": 10000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geofence-circle-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"point_lat": 40.73061,
"point_lon": -73.935242,
"center_lat": 40.7128,
"center_lon": -74.006,
"radius_m": 10000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geofence-circle-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"point_lat":40.73061,"point_lon":-73.935242,"center_lat":40.7128,"center_lon":-74.006,"radius_m":10000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"point_lat":40.73061,"point_lon":-73.935242,"center_lat":40.7128,"center_lon":-74.006,"radius_m":10000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geofence-circle-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"point_lat": 40.73061,
"point_lon": -73.935242,
"center_lat": 40.7128,
"center_lon": -74.006,
"radius_m": 10000
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geofence_circle_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |