Prüfen Sie, ob eine Adresse im Lieferradius liegt
Entscheiden Sie in einem Schritt, ob eine Adresse in Ihrem Liefergebiet liegt: Eine Adresse 6,283267 km Luftlinie vom Standort entfernt liegt innerhalb eines Radius von 10 km. Geben Sie beide Koordinatenpaare und den Radius ein. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Breitengrad des Hubs
- 40,7128
- Längengrad des Hubs
- -74,006
- Breitengrad der Adresse
- 40,73061
- Längengrad der Adresse
- -73,935242
- Maximaler Radius (km)
- 10
- Entfernung (km)
- 6,283267
Ein Lieferversprechen beginnt oft mit einer praktischen Frage: Liegt diese Adresse nahe genug am zugewiesenen Standort? Geben Sie Breiten- und Längengrad des Standorts, die Koordinaten der Lieferadresse und den Höchstradius in Kilometern an. Die Funktion prüft beide Koordinatenpaare, berechnet die direkte Großkreisentfernung und liefert eine eindeutige Zonenentscheidung samt Messwert. Sie arbeitet deterministisch, benötigt keinen Kartenanbieter und eignet sich für Checkout-Prüfungen, Versandfilter und reproduzierbare Betriebsregeln.
So wird die Entscheidung zur Lieferzone berechnet
Die Funktion behandelt den Standort als Mittelpunkt einer kreisförmigen Lieferzone und den angegebenen Höchstradius als Grenze. Mit der Haversine-Formel und einem festen mittleren Erdradius von 6371.0088 Kilometern berechnet sie die kürzeste Oberflächenentfernung zwischen Standort und Adresse. Das Ergebnis ist eine Großkreisentfernung, oft auch Luftlinie genannt.
Für den Grenzvergleich wird der vollständige interne Wert verwendet. Straßen, Brücken, Flüsse, Verkehr, Fahrverbote oder gezeichnete Polygone werden nicht berücksichtigt. Nutzen Sie das Modell für tatsächlich radiale Geschäftsregeln oder als günstigen Vorfilter vor einem aufwendigeren Routen- oder Gebietssystem.
Koordinaten vorbereiten und Fehler verstehen
Breitengrade reichen in Dezimalgrad von -90 bis 90, Längengrade von -180 bis 180; die Grenzen sind zulässig. Der Radius muss mindestens null sein. Bei null ist nur derselbe Punkt wie der Standort erlaubt.
Häufig werden Breiten- und Längengrad vertauscht. Da manche Längengrade zugleich im Breitenbereich liegen, kann ein vertauschtes Paar gültig wirken, aber einen anderen Ort bezeichnen. Verwenden Sie deshalb bei Geokodierung, Speicherung und Anfrage dieselbe Reihenfolge.
Benötigt werden geografische Dezimalgrade, keine projizierten Meter, Postleitzahlen oder Rohadressen. Geokodieren Sie zuerst und bewahren Sie angemessene Genauigkeit. Die Prüfung kann nicht bestätigen, dass ein gültiger Punkt dem gewünschten Gebäude, Eingang oder Marker entspricht.
Sicherer Einsatz in Checkout und Versand
Bei mehreren Standorten prüfen Sie jeden aktiven Standort, verwerfen false-Ergebnisse und ordnen die übrigen nach Entfernung, Bestand, Auslastung oder Zusage. Ein Treffer im Radius garantiert keine befahrbare Strecke. Küsten, gesperrte Straßen, Mautgrenzen, Fähren, geschlossene Anlagen und lokale Gebiete können einen nahen Punkt ungeeignet machen.
Ergänzen Sie dann Routen- oder Polygonprüfungen. Legen Sie den Radius in einer eindeutigen Geschäftsregel fest. Die Berechnung nutzt weder Netzwerk noch Zufall oder Uhrzeit; gleiche Anfragen liefern gleiche Antworten.
Beheben Sie Validierungsfehler an der Datenquelle, besonders vertauschte Felder und unvollständige Geokodierung.
Anwendungsfälle
Lieferberechtigung im Checkout
Prüfen Sie vor dem Angebot einer lokalen Lieferung, ob eine geokodierte Adresse nahe genug am Standort liegt.
Nächsten geeigneten Standort wählen
Vergleichen Sie eine Adresse mit mehreren Standorten, entfernen Sie Treffer außerhalb des Radius und bewerten Sie den Rest.
Qualitätskontrolle für Versanddaten
Validieren Sie gespeicherte Koordinaten und protokollieren Sie reproduzierbare Entfernungen und Ergebnisse.
Häufige Fragen
Folgt die Entfernung dem Straßenverlauf?
Nein. Es ist die Großkreisentfernung auf der Erdoberfläche. Straßen, Verkehr und Einschränkungen erfordern einen Routendienst.
Kann ich eine Anschrift statt Koordinaten senden?
Nein. Geokodieren Sie die Anschrift zuerst und senden Sie Dezimalgrad-Koordinaten zusammen mit denen des Standorts.
Zählt eine Adresse genau auf dem Radius als innerhalb?
Ja. Die Adresse liegt im Gebiet, wenn ihre Entfernung kleiner oder gleich dem Radius ist, und verglichen wird mit der vollen, ungerundeten Entfernung, sodass die angezeigte Rundung die Entscheidung nie ändert.
Was passiert, wenn ich Breite und Länge vertausche?
Viele vertauschte Paare wirken weiterhin gültig, weil die meisten Längengrade auch in den Bereich der Breitengrade passen, beschreiben aber einen anderen Ort. Halten Sie überall dieselbe Reihenfolge ein, von der Geocodierung bis zu dieser Prüfung.
Wie prüfe ich eine Adresse gegen mehrere Standorte?
Prüfen Sie die Adresse gegen jeden aktiven Standort, verwerfen Sie die Ergebnisse außerhalb des Radius und ordnen Sie die übrigen nach Entfernung, Bestand, Auslastung oder zugesagter Lieferzeit.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"hub_lat": 40.7128,
"hub_lon": -74.006,
"address_lat": 40.73061,
"address_lon": -73.935242,
"max_radius_km": 10
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ecom.last_mile_delivery_zone_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
So wird die Entscheidung zur Lieferzone berechnet
Ist der ungerundete Wert kleiner oder gleich dem Höchstradius, lautet within_zone true, andernfalls false. Die Antwort enthält außerdem distance_km auf sechs Dezimalstellen gerundet und wiederholt max_radius_km, damit Protokolle verständlich bleiben.
Koordinaten vorbereiten und Fehler verstehen
Übergeben Sie fünf endliche Zahlen: hub_lat, hub_lon, address_lat, address_lon und max_radius_km. Fehlende Werte, nicht numerischer Text, Unendlichkeiten und Koordinaten außerhalb des Bereichs ergeben invalid_input.
Sicherer Einsatz in Checkout und Versand
Rufen Sie die Funktion im Checkout nach der Geokodierung auf und verwenden Sie within_zone als ein Kriterium des Lieferangebots. Speichern Sie distance_km im Bestellprotokoll, damit der Kundendienst die Auswahl erklären kann. Jedes erfolgreiche API-Element kostet $0.002.
Technische Fragen
Ist eine Adresse genau auf der Radiusgrenze enthalten?
Ja. within_zone ist true, wenn die vollständige Entfernung kleiner oder gleich max_radius_km ist.
Was geschieht bei ungültigen Koordinaten?
Fehlende, nicht endliche oder unzulässige Breiten- oder Längengrade ergeben invalid_input statt einer Zonenentscheidung.
Was kostet eine Prüfung?
Jedes erfolgreiche API-Element kostet $0.002. Die Berechnung kontaktiert keinen Kartenanbieter.