Kreisförmigen Geofence prüfen
Dieser Prüfer für kreisförmige Geofences ermittelt, ob ein Punkt aus Breiten- und Längengrad innerhalb, genau auf der Grenze oder außerhalb eines Radius um eine Mittelkoordinate liegt.
Im Browser ausführen – kostenlos
Er berechnet mit der Haversine-Formel die Großkreisentfernung, vergleicht sie mit dem Radius in Metern und gibt eine vorzeichenbehaftete Randdistanz für den verbleibenden Spielraum zurück. Ein positiver Wert bedeutet innen, null kennzeichnet die Grenze und ein negativer Wert zeigt die Entfernung außerhalb. Die Berechnung ist deterministisch und benötigt weder Kartendienst noch Geräteabfrage oder Netzwerkzugriff.
Legen Sie Punkt, Mittelpunkt und Radius eindeutig fest
Ein kreisförmiger Geofence besteht aus drei wesentlichen Angaben: dem Breitengrad des Mittelpunkts, dessen Längengrad und einem nicht negativen Radius in Metern. Die getrennten Breiten- und Längengrade des Punkts bestimmen den Ort, den Sie prüfen möchten. Geben Sie sämtliche Koordinaten als Dezimalgrad in den üblichen geografischen WGS84-Bereichen an: Breitengrad von minus neunzig bis neunzig und Längengrad von minus einhundertachtzig bis einhundertachtzig. Senden Sie keine projizierten Kartenkoordinaten, keine Zeichenfolgen aus Grad, Minuten und Sekunden und keinen Kilometerwert ohne vorherige Umrechnung. Ein Liefergebiet mit fünf Kilometern Reichweite benötigt beispielsweise radius_m mit dem Wert 5000. Null ist ein gültiger Radius; dann liegt nur ein Punkt mit exakt denselben Koordinaten wie der Mittelpunkt innen. Fehlende Werte, nicht endliche Zahlen, Koordinaten außerhalb des zulässigen Bereichs und negative Radien werden abgelehnt, statt einen wahrscheinlichen Integrationsfehler stillschweigend zu verändern. Längengrade auf gegenüberliegenden Seiten des Antimeridians funktionieren ohne besondere Clientlogik, weil die trigonometrische Formel von selbst die kürzeste sphärische Trennung verwendet.
Deuten Sie Zugehörigkeit, Entfernung und Randdistanz
Die Antwort umfasst vier kompakte Felder. Der boolesche Wert inside ist wahr, wenn die berechnete Entfernung kleiner oder gleich dem Radius ist; damit gehört ein Punkt genau auf der Grenze zum Geofence. distance_m enthält die Großkreisentfernung zwischen Mittelpunkt und Punkt auf einer mittleren Erdkugel mit einem Radius von 6,371,000 Metern. radius_m wiederholt den geprüften Radius, während margin_m die Entfernung vom Radius abzieht. Diese vorzeichenbehaftete Randdistanz ist häufig hilfreicher als ein boolescher Wert allein: 240 bedeutet innen mit ungefähr 240 Metern Spielraum, null bedeutet genau am Rand und minus 85 ungefähr 85 Meter außerhalb. Die ausgegebenen Entfernungen werden für eine stabile Serialisierung auf sechs Nachkommastellen gerundet; die Entscheidung inside verwendet jedoch die vollständige ungerundete Berechnung. Ein gerundeter Anzeigewert kann den tatsächlichen Vergleich daher nicht verändern. Bestimmen Sie für Routen- oder Abrechnungsregeln schon vor dem Aufruf einen betrieblichen Puffer oder vergleichen Sie die zurückgegebene Randdistanz mit Ihrem eigenen Sicherheitsschwellenwert.
Nutzen Sie das Ergebnis sicher in realen Abläufen
Kreisprüfungen eignen sich für Ankunftserkennung, Lieferberechtigung, Warnungen zu nahen Geräten und grobe Zugangszonen. Sie bilden keine rechtsverbindlichen Grundstücksgrenzen ab und berücksichtigen weder Straßen noch Wände, Höhe, Stockwerke oder GPS-Ungenauigkeit. Ein Mobiltelefon kann um mehrere Meter springen; Produktionsanwendungen verlangen deshalb häufig wiederholte Messungen, eine Genauigkeitsgrenze oder Hysterese, bevor sie eine unumkehrbare Aktion auslösen. Ein Ankunftsablauf könnte beispielsweise erst eintreten, wenn margin_m zwanzig Meter überschreitet, und erst austreten, wenn der Wert unter minus zwanzig fällt. So werden schnelle Zustandswechsel am Rand vermieden. Das sphärische Haversine-Modell arbeitet weltweit einheitlich und schnell, auch nahe den Polen und am Antimeridian, ist aber eine Näherung und keine ellipsoidische Vermessung. Gleiche Eingaben liefern immer gleiche Ergebnisse, weil der Löser weder Netzwerk noch aktuelle Zeit, Zufall oder externe Kartendaten verwendet. Interaktive Prüfungen laufen im Browser; automatisierte API-Anfragen kosten jeweils $0.002. Bewahren Sie die ursprünglichen Koordinaten mit dem Ergebnis auf, wenn eine spätere Prüfung die Entscheidung nachvollziehen muss.
Anwendungsfälle
Lieferberechtigung
Prüfen Sie, ob eine Kundenkoordinate im Lieferradius liegt, und erklären Sie mit der Randdistanz ihre Nähe zur Grenze.
Ankunfts- und Abfahrtslogik
Vergleichen Sie Gerätemessungen mit einem Geofence und verringern Sie Randflattern durch positive oder negative Schwellenwerte.
Näherungswarnungen für Anlagen
Ermitteln Sie ohne externen Kartenanbieter, ob der gemeldete Standort einer Anlage in einen überwachten Bereich eingetreten ist.
Häufige Fragen
Was bedeutet eine positive Randdistanz?
Der Punkt liegt im Geofence, und margin_m ist die verbleibende Entfernung zur Kreisgrenze.
Zählt ein Punkt auf der Grenze als innen?
Ja. Die Zugehörigkeit verwendet Entfernung kleiner oder gleich Radius; die exakte Grenze ergibt inside wahr und Randdistanz null.
Welche Einheiten werden verwendet?
Radius, berechnete Entfernung und Randdistanz werden in Metern angegeben. Breiten- und Längengrad sind Dezimalgrad.
Welche Entfernungsformel kommt zum Einsatz?
Der Löser verwendet die Haversine-Formel auf einer mittleren Erdkugel mit einem Radius von 6,371,000 Metern.
Was kostet eine Prüfung über die API?
Jede erfolgreiche API-Anfrage kostet $0.002. Der deterministische Browser-Ausführer unterstützt außerdem interaktive Prüfungen.
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/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)Beispiel-Anfrage
{
"point_lat": 40.73061,
"point_lon": -73.935242,
"center_lat": 40.7128,
"center_lon": -74.006,
"radius_m": 10000
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geofence_circle_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. |