Verifichi se un indirizzo è nel raggio di consegna
Decida in un solo passaggio se un indirizzo rientra nella sua zona di consegna: uno a 6,283267 km in linea d’aria dal centro sta dentro un raggio di 10 km. Inserisca le due coppie di coordinate e il raggio. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Latitudine dell'hub
- 40,7128
- Longitudine dell'hub
- -74,006
- Latitudine dell'indirizzo
- 40,73061
- Longitudine dell'indirizzo
- -73,935242
- Raggio massimo (km)
- 10
- Distanza (km)
- 6,283267
Una promessa di consegna parte spesso da una domanda concreta: questo indirizzo è abbastanza vicino al centro assegnato? Inserisca latitudine e longitudine del centro, quelle dell’indirizzo di consegna e il raggio massimo in chilometri. La capacità convalida entrambe le coppie, calcola la distanza ortodromica in linea d’aria e restituisce una decisione chiara insieme alla distanza misurata. È deterministica, non richiede mappe ed è adatta ai controlli nel checkout, ai filtri di spedizione e a regole operative ripetibili.
Come viene calcolata la decisione sulla zona di consegna
La capacità considera il centro come fulcro di una zona circolare e il raggio massimo indicato come confine. Calcola la distanza superficiale più breve fra centro e indirizzo tramite la formula di Haversine e un raggio terrestre medio fisso di 6371.0088 chilometri. Il risultato è una distanza ortodromica, detta anche distanza in linea d’aria.
Il confronto usa il valore interno completo. Il modello non esamina strade, ponti, fiumi, traffico, limitazioni o poligoni disegnati. Lo utilizzi quando la regola commerciale è davvero radiale oppure come filtro economico prima di affidare i candidati a un sistema di percorsi o territori più costoso.
Preparazione delle coordinate e lettura degli errori
Le latitudini vanno da -90 a 90 gradi decimali e le longitudini da -180 a 180, estremi inclusi. Il raggio deve essere almeno zero; con zero è ammesso solo lo stesso punto del centro. Un errore comune è scambiare latitudine e longitudine.
Poiché molte longitudini rientrano anche nell’intervallo delle latitudini, una coppia invertita può superare la convalida indicando però un altro luogo. Mantenga lo stesso ordine in geocodifica, archiviazione e richiesta. Usi posizioni geografiche in gradi decimali, non metri proiettati, CAP o indirizzi grezzi.
Geocodifichi prima e conservi una precisione adeguata. La convalida non può confermare che il punto corrisponda all’edificio, all’ingresso o al segnaposto desiderato.
Uso sicuro nel checkout e nella spedizione
Con più centri, valuti ciascuno, scarti i risultati false e ordini gli altri per distanza, scorte, carico o tempi. Rientrare nel raggio non garantisce un percorso praticabile. Coste, strade vietate, pedaggi, traghetti, strutture chiuse e territori locali possono rendere impraticabile un punto vicino.
In tali casi aggiunga al filtro radiale controlli di percorso o poligono. Definisca il raggio mediante una politica commerciale esplicita. Il calcolo non usa rete, casualità o ora corrente, quindi richieste uguali producono risposte uguali.
Corregga gli errori alla fonte, soprattutto campi invertiti o geocodifica incompleta.
Casi d'uso
Idoneità della consegna nel checkout
Stabilisca se un indirizzo geocodificato è abbastanza vicino a un centro prima di offrire consegna locale o in giornata.
Scelta del centro idoneo più vicino
Confronti un indirizzo con più centri, escluda quelli fuori raggio e classifichi gli altri per scorte e carico.
Controllo qualità dei dati di spedizione
Convalidi le coordinate archiviate e registri distanza ed esito ripetibili per verifiche operative ed eccezioni.
Domande frequenti
La distanza segue le strade?
No. È la distanza ortodromica sulla superficie terrestre. Percorsi, traffico e limitazioni richiedono un servizio di routing.
Posso inviare un indirizzo invece delle coordinate?
No. Prima geocodifichi l’indirizzo, quindi invii latitudine e longitudine decimali insieme a quelle del centro.
Quanto costa una verifica?
Il calcolo è deterministico e non contatta fornitori di mappe.
Un indirizzo esattamente sul limite del raggio è dentro la zona?
Sì. L’indirizzo è nella zona quando la distanza è minore o uguale al raggio, e il confronto usa la distanza completa, non arrotondata, quindi l’arrotondamento mostrato non cambia mai la decisione.
Che cosa succede se inverto latitudine e longitudine?
Molte coppie invertite sembrano ancora valide, perché gran parte delle longitudini rientra anche nell’intervallo delle latitudini, ma indicano un altro luogo. Mantenga sempre lo stesso ordine, dalla geocodifica fino a questa verifica.
Strumenti correlati
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/ecom/last-mile-delivery-zone-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hub_lat":40.7128,"hub_lon":-74.006,"address_lat":40.73061,"address_lon":-73.935242,"max_radius_km":10}'const res = await fetch("https://api.kit.forhosting.com/ecom/last-mile-delivery-zone-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hub_lat": 40.7128,
"hub_lon": -74.006,
"address_lat": 40.73061,
"address_lon": -73.935242,
"max_radius_km": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ecom/last-mile-delivery-zone-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hub_lat": 40.7128,
"hub_lon": -74.006,
"address_lat": 40.73061,
"address_lon": -73.935242,
"max_radius_km": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ecom/last-mile-delivery-zone-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hub_lat":40.7128,"hub_lon":-74.006,"address_lat":40.73061,"address_lon":-73.935242,"max_radius_km":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hub_lat":40.7128,"hub_lon":-74.006,"address_lat":40.73061,"address_lon":-73.935242,"max_radius_km":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ecom/last-mile-delivery-zone-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
{
"hub_lat": 40.7128,
"hub_lon": -74.006,
"address_lat": 40.73061,
"address_lon": -73.935242,
"max_radius_km": 10
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ecom.last_mile_delivery_zone_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. |
Note tecniche
Come viene calcolata la decisione sulla zona di consegna
Se il valore calcolato senza arrotondamento è minore o uguale al raggio massimo, within_zone è true; altrimenti è false. La risposta include distance_km arrotondato a sei decimali e ripete max_radius_km per rendere registri e decisioni comprensibili.
Preparazione delle coordinate e lettura degli errori
Fornisca cinque numeri finiti: hub_lat, hub_lon, address_lat, address_lon e max_radius_km. Valori mancanti, testo non numerico, infiniti o coordinate fuori intervallo restituiscono invalid_input.
Uso sicuro nel checkout e nella spedizione
Nel checkout, richiami la capacità dopo avere convertito l’indirizzo in coordinate e usi within_zone come criterio dell’offerta. Conservi distance_km nella verifica dell’ordine per poter spiegare l’opzione mostrata. Ogni elemento API riuscito costa $0.002.
Domande tecniche
Un indirizzo esattamente sul confine è incluso?
Sì. within_zone è true quando la distanza completa è minore o uguale a max_radius_km.
Che cosa accade con coordinate non valide?
Latitudine o longitudine mancante, non finita o fuori intervallo restituisce invalid_input senza una decisione.