Nächster Punkt auf Polylinie
Für den Punkt 40.73, -74.01 und eine Route mit drei Stützpunkten liegt die nächste Stelle auf der Linie bei 40.7227030704, -73.9972969296, im zweiten Abschnitt. Sie erfahren auch, wie weit sie vom Routenanfang entfernt ist und wie weit Sie von der Route abliegen. 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
- 40,73
- Längengrad
- -74,01
- Breitengrad
- 40,7227030704
- Längengrad
- -73,9972969296
- Abfragebreitengrad
- 40,73
- Abfragelängengrad
- -74,01
Den nächsten Punkt einer Polylinie zu einer freien Breite und Länge zu finden ist ein zentrales GIS- und Routing-Grundelement: Karten-Apps projizieren einen GPS-Fix auf die Achse einer Straße, Logistikwerkzeuge messen, wie weit ein Fahrzeug von einem geplanten Korridor entfernt ist, und Vermessungsskripte zeigen, wie weit Sie bereits entlang eines Weges vorangekommen sind. Dieses Werkzeug für den nächsten Punkt auf einer Polylinie akzeptiert eine WGS84-Abfragekoordinate und eine geordnete Liste von Stützpunkten, projiziert sie in einen lokalen equirektangularen Meterrahmen und liefert den nächsten Ort auf jedem endlichen Segment. Sie erhalten die projizierte Breite und Länge, den nullbasierten Segmentindex, die Bruchposition auf diesem Segment, die Distanz entlang der Linie vom ersten Stützpunkt, die Gesamtlänge der Polylinie und die Bodendistanz von der Abfrage zum Ankerpunkt.
Was nächster Punkt auf der Polylinie für geografische Routen bedeutet
Eine Polylinie ist eine geordnete Kette gerader Segmente zwischen Stützpunkten. Im geografischen Raum ist jeder Stützpunkt eine Breite und Länge auf der WGS84-Sphäre, und jedes Segment ist die kurze Sehne zwischen zwei aufeinanderfolgenden Stützpunkten nach einer lokalen Kartenprojektion. Gegeben ein freier Abfragepunkt, der abseits der Route liegen kann, ist der nächste Punkt auf der Polylinie der Ort auf einem dieser Segmente, der die Bodendistanz zur Abfrage minimiert.
Dieser Ort kann im Inneren eines Segments liegen, an einem Stützpunkt, an dem sich zwei Segmente treffen, oder an einem der Endpunkte des gesamten Pfads, wenn die Abfrage jenseits von Start oder Ziel liegt. Der Segmentindex kennzeichnet, welche Kante den Anker hält, gezählt ab null am ersten Stützpunkt. Die Distanz entlang der Linie misst, wie weit Sie vom ersten Stützpunkt bis zum Anker gegangen wären, wenn Sie die Polylinie selbst abschritten — das unterscheidet sich von der geradlinigen Distanz von der Abfrage zum Anker.
Gemeinsam beantworten diese Felder sowohl «wo auf der Route bin ich am nächsten?» als auch «wie weit entlang der Route liegt dieser Ort?» ohne einen vollständigen Routing-Graphen oder eine Straßennetz-Datenbank.
Wann sich das Einrasten auf eine Route lohnt
Mobile und Flottenprodukte projizieren verrauschte GPS-Proben auf einen geplanten Korridor, damit die Oberfläche den Fortschritt entlang einer Route zeigt statt eines zitternden freien Fix. Feldbetrieb und Versorger messen, wie weit eine Crew oder ein Asset von einer Pipeline, einem Pfad oder einer Stromleitung entfernt ist, ohne eine vollständige Netz-Topologie-Engine aufzusetzen. Content- und Bildungsseiten, die für nächsten Punkt auf Polylinie ranken, profitieren von einem kostenlosen Live-Browser-Tool, dessen Antworten mit dem bezahlten Automatisierungspfad auf demselben reinen Modul übereinstimmen.
Bevorzugen Sie bei Kurven dichte genug Stützpunkte, damit jedes Segment kurz bleibt, wo die equirektangulare Näherung am stärksten ist; bei kontinentalen Polylinien über Tausende Kilometer erwägen Sie Verdichtung oder Teilung, wenn absolute Metergenauigkeit an den Extremen zählt. Verankern Sie die gerundeten Antwortfelder in Tests und erhalten Sie reproduzierbare Anker für Karten, LMS-Labore und Edge-Worker, ohne einen eigenen GIS-Stack zu betreiben.
Anwendungsfälle
GPS-Anker auf Straßen- oder Wegachse
Projizieren Sie einen freien GPS-Fix auf eine geordnete Routen-Polylinie und zeigen Sie verankerte Lat/Lon sowie die zurückgelegte Distanz entlang des Pfads.
Korridorabweichung und Kettenmaß-Berichte
Messen Sie die Bodendistanz von Assets zu einer Pipeline- oder Wegachse und melden Sie das Kettenmaß (Distanz entlang) in Wartungstickets.
Track-Bereinigung und Kartendemos
Reparametrisieren Sie verrauschte Trackpunkte als Distanz entlang einer Entwurfs-Polylinie in ETL-Skripten oder Live-Bildungs-Kartenwidgets.
Häufige Fragen
Wie finde ich den nächsten Punkt einer Polylinie zu einem Lat/Lon?
Senden Sie Abfrage-lat und -lon plus ein polyline-Array mit mindestens zwei {lat, lon}-Stützpunkten.
Was passiert, wenn meine Polylinie nur einen Punkt hat?
Eine Polylinie braucht mindestens zwei Stützpunkte, um ein Segment zu definieren. Koordinaten außerhalb des Bereichs scheitern ebenfalls ohne Abrechnung.
Was ist der Unterschied zwischen der Strecke entlang der Route und dem Abstand zu ihr?
Die Strecke entlang der Route ist der Weg, den Sie auf der Linie selbst vom ersten Stützpunkt bis zum eingerasteten Punkt zurücklegen würden. Der Abstand zur Route ist die gerade Entfernung am Boden zwischen Ihrem Punkt und diesem eingerasteten Punkt.
Kann der nächste Punkt ein Stützpunkt oder ein Ende der Route sein?
Ja. Die nächste Stelle kann mitten in einem Abschnitt liegen, auf einem Stützpunkt, an dem zwei Abschnitte zusammentreffen, oder am Anfang oder Ende der Route, wenn Ihr Punkt jenseits eines Endes liegt.
Wie genau ist das Ergebnis bei sehr langen Routen?
Jeder Abschnitt wird in einer lokalen Ebene gemessen, die bei kurzen Abschnitten am besten funktioniert. Setzen Sie auf kurvigen Straßen genug Stützpunkte und teilen oder verdichten Sie Routen über Tausende Kilometer, wenn es auf Meter ankommt.
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/geo/nearest-point-on-polyline \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":40.7128,"lon":-74.006,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}'const res = await fetch("https://api.kit.forhosting.com/geo/nearest-point-on-polyline", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/nearest-point-on-polyline",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/nearest-point-on-polyline", 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,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":40.7128,"lon":-74.006,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/nearest-point-on-polyline", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"lat": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.nearest_point_on_polyline",
"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
Eingabevertrag, Algorithmus, Antwortform und Fehler
Intern nimmt der Löser den Mittelwert der Polylinien-Stützpunkte als equirektangularen Ursprung, wandelt jeden Stützpunkt und die Abfrage in lokale Ost-Nord-Meter um und projiziert für jedes endliche Segment die Abfrage auf die unendliche Gerade und klemmt den Parameter t in das geschlossene Einheitsintervall, damit der Kandidat auf dem Segment bleibt. Unter allen Segmenten behält er die minimale quadrierte Distanz und bevorzugt bei exakten Gleichständen das frühere Segment für einen stabilen Vertrag. Aufeinanderfolgende Null-Längen-Duplikate werden übersprungen, sobald ein echtes Segment existiert. Senden Sie einen JSON-Body mit lat und lon des Abfragepunkts, beides endliche Zahlen in den üblichen WGS84-Bereichen von minus neunzig bis neunzig und minus einhundertachtzig bis einhundertachtzig, plus polyline als geordnetes Array mit mindestens zwei Stützpunkten, jeweils mit lat und lon. Optionales radius_m ist standardmäßig sechs Millionen dreihunderteinundsiebzigtausend Meter für die mittlere Erdumskalierung. Feldaliase wie latitude, longitude, lng, vertices, points und path werden akzeptiert, damit bestehende GIS-Payloads weniger Umschreiben brauchen. Erfolg liefert lat und lon des Ankers, echoierte query_lat und query_lon, segment_index, t, distance_along_m und distance_along_km, distance_to_m und distance_to_km, Polylinienlänge in beiden Einheiten, vertex_count, segment_count, on_vertex, radius_m und method equirectangular_polyline. Koordinaten außerhalb des Bereichs, weniger als zwei Stützpunkte, nicht-endliche Zahlen und fehlende Polylinie lösen invalid_input aus und werden nicht abgerechnet.
Wo eine API für den nächsten Punkt auf der Polylinie ihren Nutzen zeigt
Datenpipelines, die importierte Tracks bereinigen, nutzen den Anker plus distance_along_m, um Punkte als Kettenmaß entlang einer Entwurfsachse neu zu parametrisieren. Weil die Implementierung reines Parse-Tier A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz, und fehlgeschlagene Validierung wird nicht berechnet.
Technische Fragen
Was ist segment_index?
Ein nullbasierter Index der Polylinienkante, die den nächsten Punkt hält. Segment 0 läuft vom ersten zum zweiten Stützpunkt, Segment 1 vom zweiten zum dritten, und so weiter.
Wie wird die Distanz entlang der Linie gemessen?
distance_along_m ist die Bodenlänge vom ersten Stützpunkt zum Ankerpunkt entlang der Polyliniensegmente, nicht die geradlinige Distanz von der Abfrage zum Anker.
Was kostet das Werkzeug für den nächsten Punkt auf der Polylinie?
Das Browser-Tool ist kostenlos. API-Anfragen nutzen das vorausbezahlte KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht abgerechnet.