地形見通し計算機
観測者から目標までのまっすぐな視線が地形を越えられるかを確かめます。高さ100、105、120、110、95 mのプロファイルで目の高さが1.7 mなら視線はさえぎられ、120 mの尾根の21.65 m下を通ります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
地形上の見通し(ライン・オブ・サイト)は、無線リンク、射撃場、トレイルカメラ、ドローン経路、そして経路に沿った高さプロファイルをすでに持っている場合の簡易ビューシェッド確認の背後にある幾何学的な問いです。この地形見通し計算機は、観測点から目標点までの地面標高の順序付き系列に、最初のサンプル上の眼高またはアンテナ高と最後のサンプル上の物体高を加え、直線レイが中間の各サンプルをクリアするかどうかを報告します。モデルは平坦地球で、プロファイル点間の水平間隔は等間隔です。DEMや測量から既に標高を抽出したスクリプトへ組み込みやすく、高速で決定論的です。いずれかのサンプルでレイが地面を下回ると、応答は経路を遮断と示し、最初の遮断インデックスを示します。
地形見通しモデルの仕組み
観測点から目標点まで直線の地面トラックを歩き、一定の水平ステップで標高をサンプリングする場面を想像してください。最初のサンプルは観測点下の地面、最後は目標下の地面、その間の値はすべて介在地形です。平坦地球のスケッチでは、クリアなレイはこれら2つの高所点を結ぶ直線です。
全 n サンプル中のサンプル索引 i において、経路に沿った分数距離 t は i を n マイナス1で割った値です。その分数での見通しの幾何高さは eye0 に t 倍の (eye1 マイナス eye0) を加えたもので、eye0 と eye1 は高所端点です。サンプル i のクリアランスは、その幾何高さから i での地形標高を引いた値です。
すべてのクリアランスが0以上なら経路はクリアです(尾根線にかすめる接線接触も含みます)。いずれかが厳密に負なら、そのサンプルで固体地面によりレイは遮断されます。地球の曲率、屈折、植生は意図的に範囲外です。
技術基準がそれらを求める場合は補正済みプロファイルを渡すか、本ツールを大きなパイプラインの純粋幾何コアとしてお使いください。
地形の見通し確認が役立つ場面
測量や GIS のノートには、計画中のマイクロ波ホップ、トレイルカメラ方位、ハイキング展望点に沿った DEM サンプル一覧が既にあることが多く、本計算機はフルのビューシェッドスタックを立てずにクリア/遮断の二値に答えます。アルゴリズムは外向きネットワークのない純算術のため、無線計画者はエッジワーカーで数千の候補経路を一括処理できます。
ハイトマップを持つゲーム・シミュレーションは 1-D 断面を書き出し、同じ契約で AI 見通し判定を再利用できます。「検証失敗は残高を消費しません。プロファイルを5000サンプル未満に保ち、丸め済みクリアランスをテストに固定すれば、独自の GIS サーバなしで現場キット・LMS デモ・本番パイプライン向けに再現可能な LOS 判定が得られます。
活用例
無線・マイクロ波経路の確認
ホップ沿いの DEM サンプルとアンテナ高を与え、フルリンクバジェットの前に幾何レイが中間地形をクリアするか確認します。
射撃場・トレイル・カメラの配置
短い標高プロファイルで、立位または二脚の観測者から標的・旗・トレイルカメラ被写体への線を尾根が遮るか試験します。
シミュレーションとゲームの可視断面
2エンティティ間の 1-D ハイトマップ断面を書き出し、クリア/遮断契約を決定論的な AI 見通し試験に再利用します。
よくある質問
プロファイルと高さにはどの単位を使うべきですか?
プロファイルと高さを同一単位系に保ってください。フィートとメートルを混ぜなければ計算は一貫します。
プロファイルが2点だけの場合はどうなりますか?
有効です。 クリアランスは端点のみ(各地面上の観測眼と目標先端)で確認されます。非負の高さなら2サンプルでは常にクリアで、介在地形には中間サンプルが必要です。
最小クリアランスは何を表しますか?
プロファイルに沿った視線と地面の最小のすき間と、その位置です。マイナスなら地形が視線より高いことを意味し、例では120 mの尾根で−21.65 mなので、どれだけ足りないかが分かります。
尾根にちょうど触れる視線は見通しありになりますか?
はい。どの地点でも視線が地面と同じ高さか上にあれば見通しありと判定するので、尾根にちょうど触れる場合も見通しありです。地形が視線よりはっきり高くなる地点があるときだけ、さえぎられたと判定します。
地球の丸みや大気の屈折は考慮されますか?
いいえ。計算は平らな地球を前提にしており、地球の丸み、屈折、植生は含みません。必要な場合は、それらの補正をあらかじめ加えた高さのプロファイルを入力してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"profile": [
100,
105,
120,
110,
95
],
"observer_height": 1.7,
"target_height": 0
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.line_of_sight",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
地形見通しモデルの仕組み
観測者の眼(またはアンテナ給電点)は最初のサンプルの上に observer_height メートル、目標の先端は最後のサンプルの上に target_height メートルあります。本エンドポイントは大域最小クリアランスとその索引を返し、ニアミスの近さを把握でき、遮断経路では最初の遮断索引とそこでの地形・見通し標高も返します。任意の distance_m は報告のスケール用で、サンプル間隔をメートル表示しますが、索引分数で等間隔が既に仮定されているため、クリア/遮断の判定自体は変わりません。
入力契約・応答フィールド・検証
クリア経路でも正になり得る)、および検定を再述する短い formula 文字列が含まれます。例:プロファイル 100・105・120・110・95、観測高 1.7 メートル、目標高 0、距離 1000 メートルでは、120 メートルの尾根がレイを突き抜ければ遮断、各峰を高さが上回ればクリアと報告されます。JSON 本体に profile(観測地面から目標地面までのメートル単位の地形標高を少なくとも2つの有限数で並べた配列)、observer_height(最初のサンプル上の眼またはアンテナの非負有限メートル)、target_height(最後のサンプル上の物体高さの非負有限メートル)を POST してください。任意の distance_m は応答に sample_spacing_m が欲しいときの総水平経路長(メートル)です。便宜上の別名として、プロファイルに terrain・elevations・samples、観測に observer_h・h_obs・eye_height、目標に target_h・h_tgt・object_height、経路長に distance・range_m・path_length_m を受け付けます。必須欠落、非有限値、負の高さ、2未満のサンプル、5000超のサンプルは invalid_input で問題を示して失敗し、課金されません。成功時の本体には常に clear(真偽)、sample_count、observer_eye_elev と target_eye_elev(レイ端点の絶対標高)、min_clearance_m と min_clearance_index(最狭サンプル。distance_m を渡した場合は distance_m と sample_spacing_m がエコー・導出されます。clear が false のとき、blocked_at_index・terrain_elev_at_block・los_elev_at_block がクリアランスが負になった最初のサンプルを特定します。
地形LOS APIが価値を生む場面
屋外教育者や射撃場担当者は、スマホアプリからの短い標高系列を貼り付け、尾根が旗や標的への線を遮るか確認し、二脚と立射で observer_height を、鋼板と地面杭で target_height を調整できます。実装は純粋 parse のティア A のため、成功した各呼び出しは公開ベース価格 $0.002 で、モデルトークンも第三者標高サービスも不要です(プロファイルはご自身で供給)。
技術的な質問
地形見通し計算機はクリアと遮断をどう判定しますか?
profile[0]+observer_height から profile[n−1]+target_height への直線レイを構築し、等間隔の各サンプルでクリアランスを確認します。いずれかで los_z − terrain < 0 なら遮断、そうでなければクリアです(かすめはクリア扱い)。
地球の曲率や屈折は考慮されますか?
いいえ。モデルはご提供のプロファイル上の平坦地球幾何です。曲率や k 因子屈折が必要なら、API 呼び出し前に標高へ補正を適用してください。
地形見通しツールの料金は?
ブラウザツールは無料です。API リクエストは成功呼び出しごとに前払い KIT 残高から $0.002 です。無効入力は課金されません。