地図タイル→緯度経度変換
列・行・ズームから、ウェブ地図タイルの北西の角の位置が分かります。タイル0/0/0の北西の角は北緯85.0511287798°、西経180°です。ログのタイル番号の確認や課題の答え合わせに便利で、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- タイルの列インデックス
- 0
- タイルの行インデックス
- 0
- ズームレベル
- 0
- ズーム
- 0
- 緯度
- 85.0511287798
- 経度
- -180
- 緯度
- 85.0511287798
この地図タイル→緯度経度計算ツールは、スリッピーマップのタイルアドレス(列X、行Y、ズームZ)を、Webメルカトル投影におけるそのタイルの北西角の地理的な緯度経度に変換します。同じXYZ番号付けは、OpenStreetMap、Leaflet、Mapbox、その他無数のラスターキャッシュを支えています。ズーム0では単一のタイルが世界全体を覆い、ズームが1段進むごとに各軸のグリッドが2倍になるため、4つの子タイルが1つの親タイルが覆っていた領域を覆います。
地図タイルの仕組みと表示される内容
スリッピーマップのタイルとは、整数x・y・zでアドレス指定される固定のWebメルカトルグリッド内の1つの正方形セルです。ズームzが解像度を設定します。2^zの列と同数の行があり、世界は4^z個のタイルで覆われます。
列xは反対子午線から東に向かって増加します。中心でも南東角でもありません。逆ジオコーディングの経路も、タイルCDNへのネットワーク呼び出しも、ランダムなジッターもありません。
ジオハッシュ、4つの角すべての境界ボックス、住所検索が必要な場合はそれぞれの専用ツールをご利用ください。
タイル→座標変換が地図・GIS・ソフトウェアで役立つ場面
開発者は、ラスターキャッシュが予期しないパスで404を記録するとき、ユニットテストがタイル10・511・340がロンドン付近にあることをアサートしなければならないとき、あるいはバックエンドがデバッグのためにタイルURLを緯度経度のラベルに変換しなければならないときにスリッピータイルに出会います。
GISの学生は、コースが正距円筒図法の後にWebメルカトルを紹介し、あるタイルの上端の緯度を尋ねるときに同じ変換を使います。地図ライブラリの作者は、稼働中のタイルサーバーを立ち上げることなく、ズーム依存のレイアウトコード用の決定的なフィクスチャの種を作ります。
コンテストや面接の練習では、時間的な制約の中で候補者が手計算を検証できる、北西角の高速なオフライン情報源がしばしば必要になります。プロダクトツールは、サポートエンジニアがCDNログからx、y、zを貼り付け、一度に地理的なコンテキストが必要なときにこの投影を使います。このページでの計算はすべてブラウザ内で完結します。
活用例
タイルURLとCDNログのデバッグ
ラスターのパスや404ログからx、y、zoomを貼り付け、手早い地理的コンテキストのために北西角の緯度経度を確認します。
決定的な地図テストフィクスチャ
Webメルカトルのレイアウト、ズームの算術、タイル境界のラベルのユニットテスト向けに再現可能な緯度と経度を生成できます。
GISの宿題と教育デモ
電卓でsinhとatanを手作業で再実装することなく、スリッピーマップの北西角に関する教科書の答えを確認できます。
よくある質問
タイルのどの角が返されますか?
北西角のみです。 XYZスリッピー方式におけるタイルセルの最大緯度・最小経度です。
xまたはyがズーム範囲外の場合はどうなりますか?
ズームzについて、xとyはともに[0, 2^z-1]の整数でなければなりません。
結果が精度で丸められるのはなぜですか?
既定の精度は小数点以下10桁で、0から15の範囲で設定できます。
世界全体のタイルの上端が極ではなく約85.05°で止まるのはなぜですか?
Webメルカトルの地図は、極まで届かない正方形として描かれるためです。ズーム0では、唯一のタイルの北西の角が北緯85.0511287798°、西経180°になります。
指定できるズームレベルはいくつですか?
0から22までです。各ズームには2のズーム乗の列と同じ数の行があり、列と行の番号は0からその数マイナス1までに収める必要があります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/tile-to-latlon \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":0,"y":0,"z":0}'const res = await fetch("https://api.kit.forhosting.com/geo/tile-to-latlon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": 0,
"y": 0,
"z": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/tile-to-latlon",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": 0,
"y": 0,
"z": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/tile-to-latlon", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":0,"y":0,"z":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":0,"y":0,"z":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/tile-to-latlon", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"x": 0,
"y": 0,
"z": 0
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.tile_to_latlon",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_zoom | 22 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
エンジンは古典的な閉じた形の公式n=2^z、経度=(x/n)×360-180、緯度=arctan(sinh(π×(1-2y/n)))(度に変換)を使います。既知の検証例として、x=0、y=0、z=0は北緯約85.05度・西経180度付近になり、x=1、y=0、z=1は同じ緯度で経度0になります。この経路は純粋な有限算術であり、ネットワークによるタイルの取得もサンプリングも日付依存の近道もありません。GISの宿題、タイルのデバッグセッション、地図エンジンのテストにはブラウザで無料にご利用いただき、CI、オフラインパイプライン、教育デモで再現可能な北西角フィクスチャが必要な場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
スリッピータイルとは何か、そしてレスポンスの内容
行yはメルカトル正方形の北端から南に向かって増加するため、y=0は常に最も北の帯です。この計算ツールは、要求されたタイルの北西角(そのセルの中で最大の緯度と最小の経度を持つ点)の地理座標を返します。レスポンスには、検証された整数x・y・z、zoomの別名、要求された精度に丸められた緯度と経度、短いlatとlonの別名、グリッドサイズn=2^z、north_westに設定されたcornerタグ、slippy_web_mercatorというメソッドタグ、使用した精度、文書化のためのコンパクトな式の文字列が含まれます。エンジンはサポートされるズーム範囲内で北西角を投影するか、invalid_inputで入力を拒否します。拒否されるケースには、x・y・zの欠落、非整数の値、0から22の範囲外のズーム、そのズームについて負またはn=2^z以上のタイルインデックスが含まれます。このページは、座標を独自に発明してはならないワークシート、ユニットテスト、API利用者に適した安定した数値出力とともに、決定的なタイル→緯度経度の投影のみに答えます。
x・y・zの読み取り方法と緯度経度を再現可能に保つ仕組み
浮動小数点数、16進数プレフィックス、空文字列は明確なメッセージとともに拒否されるため、不正なセルが誤った子午線につながることはありません。ズームは0以上22以下でなければならず、これは一般的なウェブ地図の慣行に一致し、2^zを安全な整数のグリッド内に保ちます。zが分かった後、xとyはともに0以上2^z未満でなければなりません。優先されるフィールドは、タイルの列を表すx、タイルの行を表すy、ズームレベルを表すzですが、xにはtile_x、col、column、yにはtile_y、row、zにはzoom、zoom_level、levelといった別名も受け付けるため、クエリ文字列、スプレッドシート、型付きフォームは同じ契約を再利用できます。値はJSONの数値または10進整数の文字列として届く場合があります。範囲外のペアは、タイルインデックスがそのズームで許可される範囲を超えていることを明示するメッセージとともにinvalid_inputで失敗します。自動化されたパイプライン内でWebメルカトルを自前で再実装することなく同一の数学的結果が必要な場合は、このページの無料ブラウザ実行と有料APIを組み合わせてご利用ください。
タイル→座標変換が地図・GIS・ソフトウェアで役立つ場面
API経由では成功した検索1件につき$0.002がかかり、検証に失敗したリクエストは課金されず、レスポンスが返された後は何も保存されません。この無料のインタラクティブな探索と、同一結果を返す有料APIという分割は、KITのtier-Aカタログの他のツールと同様であり、教室でのデモから自動化パイプラインへ、数学的な結果を変えることなく移行できます。無料で決定的な地図作成ヘルパーの小さなラボを構築する際はジオハッシュのデコードや他の地理系エンドポイントと組み合わせ、このツールは「スリッピータイルが与えられたとき、その北西角は地球上のどこにあるか」という単一の問いに集中させてください。
技術的な質問
地図タイル→緯度経度計算ツールの料金はいくらですか?
このページのブラウザ版は無料です。API経由では成功したリクエストごとに$0.002がかかり、無効な入力には課金されません。
これはOpenStreetMapやLeafletと同じグリッドですか?
はい。標準的なWebメルカトルのXYZ番号付け(北でy=0、経度-180でx=0)を使います。