Gelände-Sichtlinie
Prüfen Sie, ob eine gerade Sichtlinie zwischen Beobachter und Ziel über das Gelände kommt: Beim Profil 100, 105, 120, 110 und 95 m mit Augenhöhe 1,7 m ist der Strahl blockiert und verläuft 21,65 m unter dem 120-m-Kamm. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Die Sichtlinie über dem Gelände ist die geometrische Frage hinter Funkstrecken, Schießständen, Wildkameras, Drohnenpfaden und einfachen Sichtbarkeitsprüfungen, wenn Sie bereits ein Höhenprofil entlang eines Pfades haben. Dieser Gelände-Sichtlinienrechner nimmt eine geordnete Reihe von Geländehöhen vom Beobachter zum Ziel, zuzüglich der Höhe von Auge oder Antenne über dem ersten Abtastwert und der Objekthöhe über dem letzten, und meldet, ob der gerade Strahl jeden dazwischenliegenden Abtastwert freimacht. Das Modell ist flacherde mit gleichem horizontalem Abstand zwischen den Profilpunkten — schnell, deterministisch und leicht in Skripte einzubinden, die bereits Höhen aus einem DEM oder einer Vermessung extrahiert haben. Wenn der Strahl an einem Abtastwert unter den Boden taucht, markiert die Antwort den Pfad als blockiert und nennt den ersten blockierenden Index.
So funktioniert das Gelände-Sichtlinienmodell
Stellen Sie sich vor, Sie laufen eine gerade Bodenstrecke von einem Beobachter zu einem Ziel und tasten die Höhe in gleichmäßigen horizontalen Schritten ab. Der erste Abtastwert ist der Boden unter dem Beobachter; der letzte der Boden unter dem Ziel; jeder Wert dazwischen ist dazwischenliegendes Gelände. Auf einer Flacherde-Skizze ist der freie Strahl die Gerade, die diese beiden erhöhten Punkte verbindet.
Am Abtastindex i von n Abtastwerten gesamt ist der Bruchteil der Strecke t gleich i geteilt durch n minus eins. Die geometrische Höhe der Sichtlinie an diesem Bruchteil ist eye0 plus t mal (eye1 minus eye0), wobei eye0 und eye1 die erhöhten Endpunkte sind. Der Freiraum am Abtastwert i ist diese geometrische Höhe minus die Geländehöhe bei i.
Ist jeder Freiraum größer oder gleich null, ist der Pfad frei — einschließlich streifendem Kontakt, der nur eine Kammlinie streift. Ist ein Freiraum streng negativ, wird der Strahl dort vom festen Boden blockiert. Dieser Endpunkt liefert den globalen Mindestfreiraum und seinen Index, damit Sie sehen, wie knapp ein Beinahe-Treffer war, und bei blockiertem Pfad auch den ersten blockierenden Index mit den Gelände- und Sichtlinienhöhen dort.
Erdkrümmung, Refraktion und Vegetation sind bewusst außerhalb des Umfangs: liefern Sie ein Profil, das diese Korrekturen bereits enthält, wenn Ihr Ingenieurstandard sie verlangt, oder nutzen Sie dieses Werkzeug als rein geometrischen Kern einer größeren Pipeline.
Wer die Sichtlinienprüfung nutzt
Vermessungs- und GIS-Notebooks halten oft bereits eine Liste von DEM-Abtastwerten entlang eines geplanten Mikrowellenhops, eines Wildkamera-Peilwinkels oder eines Wanderaussichtspunkts; dieser Rechner beantwortet die binäre Frage frei oder blockiert, ohne einen vollen Viewshed-Stack aufzubauen. Funkplaner können Tausende Kandidatenpfade in Edge-Workern bündeln, weil der Algorithmus reine Arithmetik ohne ausgehendes Netz ist. Spiel- und Simulationswerkzeuge mit Höhenkarten können einen 1-D-Schnitt exportieren und denselben Vertrag für deterministische KI-Sichtprüfungen wiederverwenden.
Fehlgeschlagene Validierung wird nicht abgerechnet. Halten Sie Profile unter fünftausend Abtastwerten, pinnen Sie gerundete Freiräume in Tests, und Sie erhalten reproduzierbare LOS-Entscheidungen für Feldkits, LMS-Demos und Produktionspipelines ohne eigenen GIS-Server.
Anwendungsfälle
Funk- und Mikrowellenstrecken prüfen
Liefern Sie DEM-Abtastwerte entlang eines Hops plus Antennenhöhen, um zu sehen, ob der geometrische Strahl Zwischengelände freimacht, bevor ein volles Linkbudget läuft.
Standort für Stand, Pfad und Kamera
Prüfen Sie, ob ein Kamm die Linie von einem stehenden oder Zweibein-Beobachter zu einem Ziel, einer Flagge oder einem Wildkamera-Motiv mit einem kurzen Höhenprofil blockiert.
Sichtbarkeitsschnitte in Simulation und Spielen
Exportieren Sie einen 1-D-Höhenkartenschnitt zwischen zwei Entitäten und nutzen Sie den Vertrag frei/blockiert für deterministische KI-Sichtlinientests erneut.
Häufige Fragen
Welche Einheiten soll ich für Profil und Höhen verwenden?
Meter für jedes Höhen- und Höhendifferenzfeld. Halten Sie Profil und Höhen im selben Einheitensystem; die Mathematik ist konsistent, solange Sie Fuß und Meter nicht mischen.
Berücksichtigt das Werkzeug Erdkrümmung oder Refraktion?
Nein. Das Modell ist Flacherde-Geometrie auf dem von Ihnen gelieferten Profil.
Was, wenn mein Profil nur zwei Punkte hat?
Das ist gültig: Freiraum wird nur an den Endpunkten geprüft (Beobachterauge und Zielspitze über ihren Böden). Bei nichtnegativen Höhen ist der Pfad für zwei Abtastwerte stets frei; dazwischenliegendes Gelände braucht mittlere Abtastwerte.
Was sagt der kleinste Abstand aus?
Er ist die geringste Lücke zwischen Sichtlinie und Boden entlang des Profils, samt der Stelle, an der sie auftritt. Ein negativer Wert bedeutet, dass das Gelände den Strahl überragt: Im Beispiel sind es −21,65 m am 120-m-Kamm, so sehen Sie, wie knapp es ist.
Gilt ein Strahl, der einen Kamm nur streift, als frei?
Ja. Die Sicht ist frei, solange der Strahl an jeder Stelle auf oder über dem Gelände bleibt, eine genaue Berührung gilt also noch als frei. Blockiert ist sie erst, wenn das Gelände irgendwo strikt über den Strahl ragt.
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/line-of-sight \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"profile":[100,105,120,110,95],"observer_height":1.7,"target_height":0}'const res = await fetch("https://api.kit.forhosting.com/geo/line-of-sight", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"profile": [
100,
105,
120,
110,
95
],
"observer_height": 1.7,
"target_height": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/line-of-sight",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"profile": [
100,
105,
120,
110,
95
],
"observer_height": 1.7,
"target_height": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/line-of-sight", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"profile":[100,105,120,110,95],"observer_height":1.7,"target_height":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"profile":[100,105,120,110,95],"observer_height":1.7,"target_height":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/line-of-sight", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"profile": [
100,
105,
120,
110,
95
],
"observer_height": 1.7,
"target_height": 0
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.line_of_sight",
"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 funktioniert das Gelände-Sichtlinienmodell
Das Auge des Beobachters (oder der Antennenspeisepunkt) sitzt observer_height Meter über dem ersten Abtastwert, und die Zielspitze target_height Meter über dem letzten. Optionales distance_m skaliert den Bericht, sodass der Abtastabstand in Metern erscheint; es ändert die Entscheidung frei oder blockiert nicht, weil gleicher Abstand bereits in den Indexbrüchen angenommen wird.
Eingabevertrag, Antwortfelder und Validierung
Beispiel: Profil hundert, hundertfünf, hundertzwanzig, hundertzehn, fünfundneunzig mit Beobachterhöhe eins Komma sieben Meter, Zielhöhe null und Distanz tausend Meter meldet blockiert, wenn der Kamm bei hundertzwanzig Metern den Strahl durchstößt, oder frei, wenn die Höhen den Strahl über jeden Gipfel heben. Senden Sie einen JSON-Body mit profile, einem Array aus mindestens zwei endlichen Zahlen für Geländehöhen in Metern vom Beobachterboden zum Zielboden; observer_height, einer nichtnegativen endlichen Meterzahl für Auge oder Antenne über dem ersten Abtastwert; und target_height, einer nichtnegativen endlichen Meterzahl Objekthöhe über dem letzten Abtastwert. Optionales distance_m ist die gesamte horizontale Pfadlänge in Metern, wenn Sie sample_spacing_m in der Antwort wünschen. Akzeptierte Aliase zur Bequemlichkeit umfassen terrain, elevations und samples für das Profil; observer_h, h_obs und eye_height für den Beobachter; target_h, h_tgt und object_height für das Ziel; sowie distance, range_m oder path_length_m für die Pfadlänge. Fehlende Pflichtfelder, nichtendliche Werte, negative Höhen, ein Profil kürzer als zwei Abtastwerte oder mehr als fünftausend Abtastwerte scheitern mit invalid_input und benennen das Problem; diese Fehler werden nicht abgerechnet. Bei Erfolg enthält der Body stets clear (boolesch), sample_count, observer_eye_elev und target_eye_elev (absolute Höhen der Strahlenden), min_clearance_m und min_clearance_index (den engsten Abtastwert, der auf freiem Pfad noch positiv sein kann) sowie eine kurze Formelzeichenkette, die den Test neu formuliert. Wurde distance_m geliefert, werden distance_m und sample_spacing_m zurückgegeben und abgeleitet. Wenn clear false ist, identifizieren blocked_at_index, terrain_elev_at_block und los_elev_at_block den ersten Abtastwert, an dem der Freiraum negativ wurde.
Wo eine Gelände-LOS-API ihren Nutzen hat
Outdoor-Pädagogen und Schießstandleiter können eine kurze Höhenserie aus einer Telefon-App einfügen und sehen, ob ein Kamm die Linie zu einer Flagge oder einem Ziel blockiert, wobei observer_height für Zweibein versus stehend und target_height für eine Stahlplatte versus einen Bodenpfahl angepasst wird. Weil die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne Drittanbieter-Höhendienst — Sie liefern das Profil.
Technische Fragen
Wie entscheidet der Gelände-Sichtlinienrechner frei oder blockiert?
Er baut einen geraden Strahl von profile[0]+observer_height zu profile[n−1]+target_height und prüft den Freiraum an jedem gleichmäßig beabstandeten Abtastwert. Hat ein Abtastwert los_z − terrain < 0, ist der Pfad blockiert; sonst frei (Streifen zählt als frei).
Was kostet das Gelände-Sichtlinienwerkzeug?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht abgerechnet.