Punkt-Entfernungsmatrix für Großkreisstrecken
Geben Sie bis zu 200 Punkte ein und erhalten Sie alle Großkreisentfernungen zwischen je zwei Punkten in Kilometern in einer Tabelle: Drei Punkte ergeben ein 3 × 3-Raster mit Nullen auf der Diagonale und gespiegelten Werten. Die Reihenfolge bleibt Ihre. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Der Rechner wandelt eine geordnete Liste aus Breiten- und Längengraden in sämtliche paarweisen Großkreisentfernungen in Kilometern um. Damit können Sie Routen vorbereiten, Standorte gruppieren und räumliche Nähe analysieren, bevor Sie Wege auswählen. Die Ausgabe behält die Eingabereihenfolge bei, setzt die Diagonale auf null und spiegelt jede Entfernung auf die Gegenseite der Matrix. Es werden keine externen Dienste abgefragt; identische Koordinaten liefern stets dasselbe Ergebnis.
Ordnen Sie die Koordinaten wie benötigt an
Übermitteln Sie zwei bis 200 Punkte mit jeweils numerischen Werten für <code>lat</code> und <code>lon</code> in Dezimalgrad. Der Breitengrad muss zwischen -90 und 90, der Längengrad zwischen -180 und 180 liegen. Die Listenposition eines Punktes bestimmt seine Zeile und Spalte.
Legen Sie deshalb vor der Berechnung eine stabile Reihenfolge fest. Steht beispielsweise ein Depot zuerst und folgen danach Lieferstopps, enthält Zeile null die Entfernungen vom Depot und Spalte null dieselben Werte in umgekehrter Richtung. Das Werkzeug sortiert, vereint, geokodiert und beschriftet keine Punkte.
Bewahren Sie eigene Kennungen zusammen mit der Liste auf und verknüpfen Sie sie über den Index. Doppelte Koordinaten sind zulässig und ergeben korrekt eine Entfernung von null, selbst wenn sie getrennte betriebliche Stopps darstellen. Prüfen Sie insbesondere Daten aus Tabellen, da Breiten- und Längengrad dort gelegentlich vertauscht werden.
Sonst kann eine rechnerisch gültige, geografisch jedoch unbrauchbare Matrix entstehen.
So entsteht die symmetrische Matrix
Jedes eindeutige Punktepaar wird mit der Haversine-Formel und einem mittleren Erdradius von 6,371.0088 Kilometern ausgewertet. Die Formel bestimmt den kürzeren Bogen auf einer kugelförmigen Erde, die sogenannte Großkreisentfernung. Die Implementierung berechnet nur das obere Dreieck, kopiert jeden Wert an die gespiegelte Position und setzt die Diagonale exakt auf null.
Dadurch ist Symmetrie garantiert, ohne zwei Gleitkommaberechnungen zu wiederholen, die sich an der letzten Dezimalstelle unterscheiden könnten. Großkreisentfernungen sind geografische Luftlinien und keine Straßen-, Fuß-, Bahn- oder Schiffsrouten. Gelände, Zufahrtsbeschränkungen, Einbahnstraßen, Brücken und Grenzen bleiben unberücksichtigt.
Verwenden Sie die Matrix als analytische Kostenbasis, erste Heuristik oder Vorfilter. Benötigen Sie tatsächliche Fahrzeiten oder befahrbare Strecken, übergeben Sie die ausgewählten Paare anschließend an einen Straßenroutingdienst.
Nutzen Sie das Ergebnis sachgerecht
Da eine geografische Entfernung ungerichtet ist, besitzt der umgekehrte Eintrag denselben Wert. Diese Struktur eignet sich unmittelbar für Clusterverfahren, die Auswahl des nächsten Nachbarn, minimale Spannbäume, Standortvergleiche oder eine erste Heuristik für das Problem des Handlungsreisenden. Der Speicherbedarf wächst quadratisch: 200 Punkte erzeugen 40,000 numerische Zellen, weshalb die Eingabe fest begrenzt ist.
Teilen Sie größere Mengen in sinnvolle Regionen oder berechnen Sie nur benötigte Paare. Ein Optimierer darf die Ausgabe als Kostenmatrix verwenden, sollte daraus aber keine befahrbare Verbindung ableiten. Speichern Sie die geordneten Originalkoordinaten gemeinsam mit dem Ergebnis, damit Indizes nachvollziehbar bleiben.
Anwendungsfälle
Eine Routenheuristik vorbereiten
Erzeugen Sie vor detaillierten Straßenabfragen die vollständige geografische Kostentabelle für Nächster-Nachbar- oder Einfügeverfahren.
Mögliche Standorte vergleichen
Messen Sie sämtliche Abstände zwischen Lagern und Zielorten in einer geordneten Matrix für die Standortanalyse.
Nahe Stopps gruppieren
Verwenden Sie Kilometerabstände als deterministische Eingabe für schwellen-, graph- oder näherungsbasierte Clusterverfahren.
Häufige Fragen
Sind dies Straßenentfernungen?
Nein. Es sind Großkreisentfernungen auf einer kugelförmigen Erde; Straßen und Reisebeschränkungen werden nicht berücksichtigt.
Welche Einheit verwendet die Matrix?
Alle Matrixwerte werden in Kilometern angegeben; die Antwort nennt die Einheit ausdrücklich.
Warum ist die Matrix symmetrisch?
Die Entfernung von A nach B entspricht der Entfernung von B nach A, daher sind gespiegelte Zellen identisch.
Wie viele Punkte kann ich senden?
Eine Anfrage akzeptiert zwei bis 200 Punkte. Die Grenze beschränkt quadratischen Rechenaufwand und Antwortgröße.
Welche Formel und welcher Erdradius werden verwendet?
Die Haversine-Formel auf einer Kugel mit dem mittleren Erdradius von 6371,0088 km. Sie misst den kürzeren Bogen zwischen zwei Punkten, also die Entfernung auf dem Großkreis, die Luftlinie.
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/distance-matrix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"points":[{"lat":40.7128,"lon":-74.006},{"lat":51.5074,"lon":-0.1278},{"lat":35.6762,"lon":139.6503}]}'const res = await fetch("https://api.kit.forhosting.com/geo/distance-matrix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"points": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 51.5074,
"lon": -0.1278
},
{
"lat": 35.6762,
"lon": 139.6503
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/distance-matrix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"points": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 51.5074,
"lon": -0.1278
},
{
"lat": 35.6762,
"lon": 139.6503
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/distance-matrix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"points":[{"lat":40.7128,"lon":-74.006},{"lat":51.5074,"lon":-0.1278},{"lat":35.6762,"lon":139.6503}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"points":[{"lat":40.7128,"lon":-74.006},{"lat":51.5074,"lon":-0.1278},{"lat":35.6762,"lon":139.6503}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/distance-matrix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"points": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 51.5074,
"lon": -0.1278
},
{
"lat": 35.6762,
"lon": 139.6503
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.distance_matrix",
"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.
Limits
max_items | 200 |
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 entsteht die symmetrische Matrix
Für stabiles JSON werden Ergebnisse auf sechs Dezimalstellen gerundet.
Nutzen Sie das Ergebnis sachgerecht
Die Antwort enthält <code>point_count</code>, die feste Einheit <code>km</code> und <code>distances_km</code> als quadratische Matrix. Der Eintrag <code>distances_km[i][j]</code> bezeichnet die Entfernung von Punkt <code>i</code> zu Punkt <code>j</code>. Die reine Berechnung ohne Netzwerk ist bei identischem JSON reproduzierbar.
Technische Fragen
Was kostet eine Anfrage?
Der API-Preis beträgt $0.002 je Anfrage. Die Browserversion kann lokal ohne API-Aufruf ausgeführt werden.