ランベルト正積方位図法の座標計算
緯度・経度を、好きな場所を中心にしたランベルト正積方位図法の地図に投影し、東と北へのメートル値で表します。中心そのもの、たとえば北緯45度・西経100度は常に0と0になります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 緯度
- 45
- 経度
- -100
- 中心の緯度
- 45
- 中心の経度
- -100
- X m
- 0
- Y m
- 0
- 半径 (m)
- 6,371,008.8
ランベルト正積方位図法は、球面上の面積を保ちながら、1組の緯度経度を平面の X・Y 座標へ変換します。地図中心の緯度と経度を指定すると、設定可能な球半径を使い、その原点からのずれをメートル単位で返します。地域別の主題図、極域表示、中心からの距離表示、再現可能な地理空間データ処理に適しています。計算は決定論的で外部の投影サービスを利用せず、表現できない唯一の地点、すなわち選択した中心の正確な対蹠点は明確なエラーとして扱います。
地点、投影中心、球半径を指定します
4つの角度はいずれも10進度です。緯度はマイナス90から90、経度はマイナス180から180の範囲で入力します。中心は座標系を定める重要な要素です。
同じ地点を投影しても、中心を変更すれば両方の出力軸が変わります。地点と中心が一致する場合は、東向きも北向きも常に0メートルです。特定の球体や既存の地図仕様を使う処理では、別の正の半径を指定してください。
本実装は球面式であり、楕円体式ではありません。楕円体の長半径を入力しても、完全な楕円体 LAEA の結果にはなりません。有限値に変換できる数値文字列は受け付けます。
正積の順投影が行う計算を理解します
処理系は各角度をラジアンへ変換し、選択した中央子午線からの経度差を求め、球面ランベルト方位図法の縮尺係数を計算します。この係数は地点と中心の角度関係によって決まります。選択した球面に対して面積が保たれるため、地域の大きさを比較するコロプレス図、密度面、大陸規模の集計、極域の分布図に適しています。
ただし正積であっても、ほかの性質がすべて保たれるわけではありません。中心から離れるほど形と距離のひずみは大きくなり、方位が信頼できるのは中心から各地点への方向であって、任意の2点間ではありません。中心の正確な対蹠点では縮尺係数の分母が0になり、平面上のあらゆる方向が同じ反対側の地点を表そうとします。
本機能はこの特異点を検出し、無限大や誤解を招く巨大な値ではなくエラーを返します。対蹠点の近くでは値が大きく敏感になるため、表示対象地域に近い中心を選んでください。
地図やデータ処理で出力を安全に利用します
一般に正の X は中央子午線から東、正の Y は地図上の局所的な北を指します。これらは、この特定の投影平面におけるメートル単位の変位です。別の中心、半径、測地基準、楕円体ランベルト方式で作られたレイヤーとは自動的に一致しません。
後の処理でも同じ座標系を再現できるよう、中心と半径を投影値とともに保存してください。無料のブラウザー実行機能は、座標の確認や作図例の準備に便利です。ネットワーク参照、測地グリッド、乱数、現在時刻は結果に関与しません。
公式測量や名称付き EPSG CRS との交換には、その CRS 定義全体を設定した投影ライブラリをご利用ください。
活用例
正積の地域地図を作成します
主題記号、密度グリッド、面積比較を一貫した球面平面に描く前に、地域中心の周囲にある地点を投影します。
極域表示を構成します
中心を極に置き、北極圏や南極圏の観測範囲、研究基地、観測フットプリントに安定した平面座標を作成します。
地理空間処理を検証します
フィクスチャ、教材、球面ランベルト方位図法実装の検証に使える決定論的な基準座標を生成します。
よくある質問
ランベルト正積方位図法は何を保存しますか?
選択した球面上の面積を保存します。特に中心から離れると、すべての距離、形、方向が保存されるわけではありません。
既定の地球半径はいくつですか?
既定値は IUGG の平均地球半径 6371008.8 メートルです。別の正の球半径も指定できます。
楕円体の EPSG 変換ですか?
いいえ。 指定中心の周りで球面ランベルト正積方位図法を明示的に計算するもので、楕円体の測地基準変換ではありません。
中心の正反対の地点が受け付けられないのはなぜですか?
中心のちょうど反対側では計算が0で割ることになり、平面上のあらゆる方向がその1点を表そうとしてしまうためです。巨大で誤解を招く数値の代わりにエラーを返します。その近くでも結果はとても大きく不安定になります。
中心が違う座標どうしを組み合わせられますか?
いいえ。メートルの値は計算に使った中心と半径でしか通用しないため、別の中心で作ったレイヤーとは重なりません。再現できるよう、中心と半径を座標と一緒に保存してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/lambert-azimuthal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":40,"longitude":-75,"center_latitude":45,"center_longitude":-100}'const res = await fetch("https://api.kit.forhosting.com/geo/lambert-azimuthal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": 40,
"longitude": -75,
"center_latitude": 45,
"center_longitude": -100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/lambert-azimuthal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 40,
"longitude": -75,
"center_latitude": 45,
"center_longitude": -100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/lambert-azimuthal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":40,"longitude":-75,"center_latitude":45,"center_longitude":-100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":40,"longitude":-75,"center_latitude":45,"center_longitude":-100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/lambert-azimuthal", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"latitude": 40,
"longitude": -75,
"center_latitude": 45,
"center_longitude": -100
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.lambert_azimuthal",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
地点、投影中心、球半径を指定します
投影する地点を latitude と longitude に、ランベルト方位図の原点を center_latitude と center_longitude に指定してください。省略可能な radius_m は平面の縮尺を決め、既定値は IUGG の平均地球半径である 6371008.8 メートルです。必須項目の欠落、無限値、範囲外の角度、正でない半径には、曖昧な座標ではなく invalid_input を返します。
正積の順投影が行う計算を理解します
続いて東向き成分と北向き成分へ適用し、x_m と y_m を生成します。
地図やデータ処理で出力を安全に利用します
成功時には、小数点以下6桁に丸めた x_m と y_m に加え、元の地理座標、選択した中心、使用した半径、方式識別子を返します。
技術的な質問
出力座標の単位は何ですか。
本機能の指定どおり radius_m をメートルで与えた場合、x_m と y_m もメートル単位になります。
対蹠点でエラーになるのはなぜですか。
中心の正反対にある地点は特異点で、平面上の方向を定められないため、リクエストは invalid_input を返します。