相互視界距離
高さのある2つの物体が地平線越しに見通せる最大の距離が分かります。高さ30 mの見張りと100 mのマストなら、地平線距離は約19.5 kmと約35.7 kmで、合計約55.2 kmまで互いに見えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 高さ A
- 30
- 高さ B
- 100
- 高さの単位
- M
- 距離の単位
- Km
- 地球の半径
- 6,371,000
- 地球半径の単位
- M
- 地球の半径 (m)
- 6,371,000
- 屈折係数 k
- 1
塔から船を視認する必要がある場合、ドローンが地上局との無線連絡を保つ必要がある場合、あるいは2つの監視所が光学的見通しを共有する必要がある場合、制約となる数値は相互の幾何学的地平線です。この相互視界距離計算機は、局所地表からの2物体の高さ、任意の惑星半径、任意の大気屈折係数を受け取り、各物体の地平線距離とその和を、球形地球上で両者がちょうど見通せる最大間隔として返します。純解析経路では標準の弦の公式を用い、各物体について d を有効半径の2倍に高さを掛けたものに高さの2乗を加えた平方根とし、それらを加算します。検証失敗は課金されず、成功した呼び出しは公開されている基本料金でプリペイドKIT残高を使用します。
相互視界の意味と2つの地平線の加算
球形の惑星上では、高さ h の観測者は球面に接して地平線へ続く接線より先の地表を見ることはできません。その直角三角形の初等幾何から、幾何学的地平線距離 d は 2Rh と h の2乗の和の平方根となり、ここで R は観測者直下の地表まで測った惑星半径です。
リンクのもう一端も高い場合—マスト上のアンテナ、稜線上の目標、高いブリッジを持つ第2の船—第2の物体にも独自の地平線があります。両物体がちょうど見通しを交わすのは、地上距離が2つの地平線の和に等しいときです。第1の光線は一方から共通の地平線円に出会い、第2の光線は他方から出会います。
その和が相互視界距離であり、目標視界距離や一対の高さに対する電波の幾何学的地平線とも呼ばれます。第2の高さを0にすると、単独観測者の古典的な海上地平線距離が得られます。両高さを等しくすると同一の2塔をモデル化します。
式は幾何のみです。 実際の地形、建物、植生、マルチパスは純粋な地平線限界よりはるかに手前で経路を遮ったり延ばしたりし得るため、計画者は結果を開けた水面や平滑な地面上の晴天見通しの上限として扱い、丘陵越しの連絡保証とはみなしません。
相互視界距離が役立つ場面
船舶・沿岸業務では相互視界距離計算機を使い、既知の乾舷高さの船舶が既知の監視高から幾何学的地平線上に現れる時機を、ブリッジ班や沿岸局が推定します。アマチュア無線やマイクロ波の計画者は、詳細な地形パスプロファイルを回す前に、2アンテナ高さ間の一次の自由空間幾何限界を見積もります。
捜索救助やドローン班は、開けた地形上の視覚または制御リンク接触の計画半径に観測者と機体の高度を変換します。相互視界距離、2高さからの見通し、地平線距離計算機で順位を狙うコンテンツサイトは、自動化経路とバイト単位で一致する無料ブラウザツールの恩恵を受けます。
活用例
船舶・沿岸監視の計画
既知のブリッジまたはマスト高さの船舶が、塔や断崖の監視所からいつ見えるかを、開けた水面上で両方の幾何学的地平線を加算して推定します。
RF・マイクロ波の一次距離
詳細なパスロスソフトを実行する前に、任意の4/3地球屈折を用いて2アンテナ高さ間の幾何学的見通し上限を計算します。
ドローンとSARの視覚接触半径
平坦地でのブリーフィング、訓練、制御リンク計画のため、観測者高と機体高度を相互視界の円に変換します。
よくある質問
2つの高さから相互視界距離はどう計算しますか?
各高さに幾何学的地平線 d=sqrt(2·R_eff·h+h²) を求めます。
一方の高さを0にできますか?
はい。 高さ0は地平線0を寄与するため、相互距離は唯一の高所物体の地平線に等しくなります。その高さに対する古典的な海上地平線距離です。
丘や建物、回折は考慮されますか?
いいえ。 モデルは任意の有効半径付きの球幾何のみです。地形遮蔽、クラッタ、回折にはパスプロファイルツールが必要で、この結果は晴天時の上限として扱ってください。
大気屈折の係数はどれを使えばよいですか?
純粋な幾何学的地平線なら初期値の1のままにします。無線や光学の計画では4/3、約1.333がよく使われ、実効的な地球半径を大きくして標準的な大気屈折を近似します。
どの単位を使えますか?
高さはメートル、フィート、キロメートル、法定マイル、海里から選び、2つとも同じ単位にします。結果は初期設定でキロメートルですが、相互視界距離はメートル、マイル、海里でも常に表示されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/target-visibility-range \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"height_a":30,"height_b":100}'const res = await fetch("https://api.kit.forhosting.com/geo/target-visibility-range", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"height_a": 30,
"height_b": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/target-visibility-range",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"height_a": 30,
"height_b": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/target-visibility-range", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"height_a":30,"height_b":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"height_a":30,"height_b":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/target-visibility-range", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"height_a": 30,
"height_b": 100
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.target_visibility_range",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
入力契約、屈折係数、単位、応答の形
無線・光学では約1.333(古典的な4/3地球モデル)を渡すことが多く、有効半径を広げて標準的な大気屈折を近似します。POST で JSON 本体を送り、必須の非負有限数を2つ指定します。height_a と height_b は同一基準面からの2物体の高さです。任意の height_unit は既定でメートルであり、両方の高さに共通して m、ft、km、mi、nmi を受け付けます。任意の earth_radius は既定で6371000メートル(一般的な平均地球半径)で、任意の earth_radius_unit もあります。任意の refraction_k は純幾何球では既定1です。任意の distance_unit は mutual_range と各物体の地平線について既定でキロメートルです。成功時、本体は高さと単位をエコーし、earth_radius_m、refraction_k、effective_radius_m を報告し、選んだ単位で horizon_a、horizon_b、mutual_range を返し、マルチ単位UI向けに常に mutual_range_m、mutual_range_km、mutual_range_mi、mutual_range_nmi を含み、さらに公式文字列と短い前提注記を付けます。欠落フィールド、負の高さ、正でない半径や k、非有限値、未知の単位文字列は問題を指名して invalid_input で失敗し、課金されません。例:既定の地球半径と k=1 で30メートルと100メートルなら、各地平線はおよそ19.5キロメートルと35.7キロメートル、相互距離は約55.2キロメートルになります。
相互視界APIが役立つ場面
実装は純粋な parse ティアAのため、成功した呼び出しは毎回公開基本料金 $0.002 で、モデルトークンも外向きネットワークもありません。リクエストを小さく保ち、テストで整形済み浮動小数点を固定すれば、本格的な電波伝搬スタックを立てずに授業、アプリ、エッジワーカー向けの再現可能な幾何距離が得られます。
技術的な質問
refraction_k パラメータとは何ですか?
大気屈折のため地球半径を有効値へスケールします。純幾何では1を使います。無線・光学ではしばしば ~1.333(4/3地球)です。値は有限で0より大きくなければなりません。
相互視界距離計算機の料金は?
ブラウザツールは無料です。APIリクエストは成功1回あたり $0.002 でプリペイドKIT残高を使用し、無効入力は課金されません。