Geometrischer Median
Der geometrische Median ist der Ort, der die Summe der geradlinigen Abstände zu allen eingegebenen Punkten minimiert.
Im Browser ausführen – kostenlos
Anders als das arithmetische Mittel ist er gegenüber einem weit entfernten Ausreißer robust. Dadurch eignet er sich als repräsentatives Zentrum für Standorte, Beobachtungen oder ebene Koordinaten. Dieser Rechner beginnt am Zentroid und verfeinert das Ergebnis deterministisch nach Weiszfeld, bis sich das Zentrum um weniger als Ihre Toleranz bewegt oder die Iterationsgrenze erreicht ist. Er liefert das geschätzte Zentrum, die Gesamtentfernung und Angaben zur Konvergenz, damit Sie das Ergebnis nachvollziehen können.
Wählen Sie den geometrischen Median für Entfernungsziele
Ein Zentroid gleicht Koordinatenwerte aus, minimiert jedoch nicht unmittelbar die zurückgelegten Wege. Ein einzelner entfernter Punkt kann das arithmetische Mittel weit aus dem dicht besetzten Bereich eines Datensatzes ziehen. Der Rechner für den geometrischen Median sucht stattdessen den Punkt mit der kleinsten Summe euklidischer Abstände zu sämtlichen Beobachtungen. Dieser Unterschied ist wichtig, wenn die Ebene Lagerhäuser, Serviceeinsätze, Sensormessungen, Lieferstopps oder andere Situationen darstellt, in denen die Luftlinienentfernung aussagekräftig ist. Geben Sie jede Beobachtung als Objekt mit endlichen x- und y-Koordinaten ein. Wiederholte Punkte sind zulässig und werden als wiederholte Beobachtungen gewertet. Alle Koordinaten müssen dieselbe kartesische Einheit verwenden. Sie werden nicht als Breiten- und Längengrade auf der gekrümmten Erde interpretiert; projizieren Sie Geodaten zuvor in ein geeignetes ebenes Koordinatensystem. Das Ergebnis ist eine Näherung mit ausdrücklich festgelegter Toleranz und Iterationsgrenze.
Verstehen Sie Verfeinerung und Abbruch nach Weiszfeld
Die Berechnung startet am arithmetischen Zentroid und bildet anschließend wiederholt einen mit inversen Entfernungen gewichteten Mittelwert aller Punkte. Nahe Beobachtungen erhalten in jedem Schritt mehr Gewicht, sodass sich die Schätzung zu einem Ort mit geringerer Gesamtentfernung bewegt. Ein modifizierter Weiszfeld-Schritt behandelt den wichtigen Fall, dass eine Schätzung genau auf einen Eingabepunkt fällt: Dort prüft der Löser die geometrische Optimalitätsbedingung, statt durch null zu teilen. Die Iteration endet, wenn die Bewegung zwischen aufeinanderfolgenden Schätzungen nicht größer als die angeforderte Toleranz ist. Die Antwort enthält converged, iterations und tolerance neben dem Zentrum und total_distance. Ist converged wahr, war der Bewegungstest oder die exakte Punktbedingung erfolgreich. false bedeutet, dass die maximale Iterationszahl ausgeschöpft wurde; Sie können mit einer höheren Grenze erneut rechnen. Vermeiden Sie eine Toleranz weit unterhalb der sinnvollen Messgenauigkeit, denn Gleitkommaarithmetik kann keine Genauigkeit erzeugen, die in den Quelldaten fehlt.
Deuten, prüfen und verwenden Sie das geschätzte Zentrum
Lesen Sie center.x und center.y im selben Koordinatensystem und in denselben Einheiten wie die übermittelten Punkte. Das Feld total_distance summiert den euklidischen Abstand vom endgültigen Zentrum zu jeder Beobachtung. Damit können Sie Datensätze vergleichen oder die Zielfunktion unabhängig überprüfen. Prüfen Sie das Ergebnis bei betrieblichen Entscheidungen anhand realer Einschränkungen: Das mathematische Zentrum könnte in einem See, außerhalb eines zulässigen Gebiets oder an einem Ort ohne Straßenanbindung liegen. Der unbeschränkte geometrische Median ist daher ein aussagekräftiger Bezugspunkt, aber nicht automatisch eine nutzbare Adresse. Müssen Sie einen der eingegebenen Punkte auswählen, berechnen Sie die Abstandssumme für zulässige Kandidaten und nutzen Sie diese Schätzung zur Orientierung; der Dienst rastet nicht an einer Beobachtung ein. Die Ergebnisse sind bei identischer JSON-Eingabe, Toleranz und Grenze deterministisch. Verwenden Sie vergleichbare Achsenskalierungen und speichern Sie die Konvergenzfelder zusammen mit der Koordinate.
Anwendungsfälle
Einen gemeinsamen Servicepunkt platzieren
Schätzen Sie einen zentralen ebenen Ort, der die gesamte Luftlinienentfernung zu Kunden oder Einrichtungen minimiert.
Gruppierte Beobachtungen zusammenfassen
Bestimmen Sie ein robustes repräsentatives Zentrum, das ein entfernter Messwert weniger verzerrt als den Koordinatenmittelwert.
Eine beschränkte Suche beginnen
Nutzen Sie das unbeschränkte Medianzentrum als Bezugspunkt für die Bewertung zulässiger Standorte oder naher Kandidaten.
Häufige Fragen
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002; der Browserrechner kann dieselbe deterministische Logik lokal ausführen.
Sind geometrischer Median und Zentroid identisch?
Nein. Das Zentroid mittelt Koordinaten, während der geometrische Median die Summe euklidischer Abstände minimiert.
Kann ich Breiten- und Längengrade eingeben?
Die Berechnung setzt eine kartesische Ebene voraus. Projizieren Sie Geokoordinaten sachgerecht, bevor Sie Entscheidungen anhand physischer Entfernungen treffen.
Was geschieht mit wiederholten Punkten?
Jeder Array-Eintrag ist eine Beobachtung; wiederholte Koordinaten erhalten daher entsprechend größeren Einfluss.
Was bedeutet converged mit dem Wert false?
Die Berechnung erreichte max_iterations vor dem Abbruchkriterium; erhöhen Sie die Grenze oder lockern Sie tolerance, wenn angemessen.
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/median-center \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"points":[{"x":0,"y":0},{"x":4,"y":0},{"x":2,"y":3}]}'const res = await fetch("https://api.kit.forhosting.com/geo/median-center", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"points": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 2,
"y": 3
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/median-center",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"points": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 2,
"y": 3
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/median-center", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"points":[{"x":0,"y":0},{"x":4,"y":0},{"x":2,"y":3}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"points":[{"x":0,"y":0},{"x":4,"y":0},{"x":2,"y":3}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/median-center", 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": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 2,
"y": 3
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.median_center",
"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. |