公的タイルを、どの中心・どの図法にも

国土地理院の地理院タイルと、スペイン IGN をはじめとする欧州の公的タイルは、 どちらも Web メルカトル図法で配信されている。AAE はこれを一度「正距円筒図法」の 1 枚の中間画像に戻し、 あとは海岸線と同じ処理経路で任意の中心・任意の図法へと送り出す。 タイルの提供元や配信規格が異なっていても、エンジンへ組み込むための仕組みは 1 つだけである。

1Web メルカトルから正距円筒へ

地図タイルは {z}/{x}/{y} の格子で配られる。AAE はこれらを並べて 1 枚のモザイク画像を作り、 Web メルカトル座標から経緯度へ逆変換して、正距円筒図法の 1 枚の中間画像(7200 × 3600 ピクセル)にリサンプリング(再標本化)する。 そこから先は仕組みのページで述べた経路と同じであり、 球面回転と対応表(LUT)の逆引きによって、どの中心・どの図法にも同じ中間画像が追随する。

タイル {z}/{x}/{y} Web メルカトル モザイク 必要な範囲だけ 正距円筒の一枚 GPU で再標本化 球面回転 + 対応表(LUT) 海岸線と同じ経路 任意中心 任意図法
取り込んだタイルは手元のストレージに残し、二度目からは取りに行かない。提供元サーバーへの要求は 1 秒あたり 1 枚を上限とし、HTTP リクエストの User-Agent には本サイトの URL を明記して、アクセス元を隠さない。

2地理院タイルと LOD は別ページに

日本国内の国土地理院タイル(9 層)の個別仕様、ハザード図を混色させない最近傍補間(nearest 固定)、 拡大率に応じて細かさを切り替える LOD、そして視点が止まってから高精細(HQ)を描き直す仕組みの詳細は、 地理院タイルと LODのページにまとめている。 本ページでは、欧州の公的タイル、OpenStreetMap のベクタ処理、およびシステム全体で読み込める多様なデータ形式について解説する。

3欧州の公的タイル(スペイン IGN ほか)

地理院タイルの実装を手本として、同一の処理経路に欧州の公的タイルを統合している。 マドリード周辺を主な対象エリアとして、地図・航空写真・海底地形・洪水の 5 層を扱っている。 データの読み込みモジュールは地理院タイルと完全に共通であり、提供元ごとの違いはレイヤー定義の一覧における「1 行の設定」に収まる。

層提供元種類扱い
IGN 地図IGNBaseIGN España / CNIG基図bilinear(バイリニア補間)
IGN 簡略地図IGNBaseSimplificadoIGN España / CNIG基図bilinear・文字なし(タイルが存在しない領域は海岸線のみを表示)
航空写真PNOA Máxima ActualidadIGN España / CNIG基図bilinear
海底地形EMODnet BathymetryEMODnet基図bilinear・不透明レイヤーのため基図として扱う
洪水 T100河川氾濫・100 年確率IDEE / MITECO(スペイン)ハザードnearest・重ねる(広域および空港周辺のズームレベルのみ保持)
ハザード図の扱いについて。 本エンジンにおけるハザード図(活断層図・浸水想定区域・洪水 T100 など)の表示は、公的機関が公開する図面を任意の中心・任意の図法で参照しやすくするための補助機能であり、防災上の判断の根拠とするものではない。 再投影・再標本化・ズームレベルごとのデータ取得状況によって、元の図面と見え方が異なることがある。 避難・土地利用・建築などの判断にあたっては、必ず各国の公式機関が公開する元の図面と自治体の案内に従うこと。
マドリード中心の正距方位図法に EMODnet の海底地形を載せた図。イベリア半島と周辺の海底の起伏が一枚に収まり、タイルの継ぎ目は見えない。

文字のない地図を選ぶと、図法を変えても文字が崩れない。Web メルカトルのタイルを正距方位図法に送り直しても継ぎ目は出ない。EMODnet Bathymetry Consortium

マドリード=バラハス空港の航空写真の上に、100 年確率の洪水浸水想定域を重ねた図。滑走路の東を流れる川沿いが青く塗られている。

写真は bilinear、洪水は nearest。同じ画面に二つの経路が同居する。青の縁がドット状なのは混色していない証拠。Obra derivada de PNOA 2023 CC-BY 4.0 scne.es / 洪水 T100: IDEE / MITECO

海岸線の側から見ると、日本の地理院タイルも欧州のタイルも「正距円筒図法の 1 枚」でしかない。提供元を増やすのに、図法や中心の側は何も変えていない。

4OpenStreetMap — 絵にせず、線のまま投影する

ここまでに挙げた公的タイルは「ラスタ画像(絵)」であった。一方、OpenStreetMap(OSM)のデータは画像ではなく座標列(ベクタ)として読み込む。 道路・鉄道・水域・航路などの地物を PMTiles 形式のベクトルタイルから抽出し、航空機の位置や大圏航路と同じ順方向の投影経路を用いて、 経緯度から直接任意の中心・任意の図法へ飛ばす。事前に Web メルカトルのラスタ画像に焼き込んでから再投影するわけではない。

項目ラスタのタイル(§1〜3)OSM ベクタ(本節)
読むもの画素データ(PNG / JPEG)座標列データ(道路・鉄道・水域・航路など 86 層・10 グループ)
経路正距円筒図法の中間画像にリサンプリング → LUT 逆引きで参照球面回転 R を適用して順方向に投影 → ベクタ線を描画
拡大時タイルのズームレベル(z)を切り替える画面の表示範囲に入るタイルだけを読み込む(取得枚数に上限を設定)
図法を変えると同じ 1 枚の中間画像をそのまま引き直す同じ座標列を新しい図法で再投影する(線の太さは画面基準で一定に保つ)
文字(注記)タイル画像に焼き込まれているため、投影法に合わせて一緒に歪む文字データは持たせず、幾何学的形状(線)のみを描画する
タイルの分割グリッド自体は Web メルカトル規格であるが、中身は純粋な座標列であるため、任意の経緯度座標系へ正確に戻すことができる。 そのため、OSM の道路網はダイマクション図法の面をまたいでも、スピルハウス図法の切れ目をまたいでも、海岸線と同じ幾何学規則で正しく分割・描画される。 データソースとしては、planetiler を用いて全世界を 1 本にまとめた PMTiles(OpenMapTiles 準拠のレイヤー構成)を手元に保持している。 地域別のサブセット(日本・スペイン等)も同一の構成で運用している。
マドリード周辺の航空写真の上に OpenStreetMap の道路を正距方位図法で描いた図。環状道路と放射状の幹線が赤い線で読める。
マドリード中心・正距方位図法・約 600 倍(1 px ≈ 87 m)。道路はタイルの絵ではなく座標列を直接投影して描いているので、航空写真の上に細い線のままクリアに載る。 © OpenStreetMap contributors, ODbL / Obra derivada de PNOA 2023 CC-BY 4.0 scne.es

5読み込める形式

AAE が読み込めるデータ形式の一覧。読んだデータは内部で「正距円筒の 1 枚(ラスタ)」「座標列(点・線・面)」「格子(数値)」の 3 種類のどれかに正規化される。

種類形式例内部正規化先
海岸線・陸地・湖沼GSHHG バイナリ(5 段階の解像度)/ ShapefileGSHHG / Natural Earth面データ → 中間画像へ焼き込み
河川・国境WDBII バイナリ(4 段階の解像度)GSHHG 同梱線データ(4 段階 LOD)
道路・鉄道・水域・航路PMTiles(ベクトルタイル)OpenStreetMap(planetiler で生成した全球 1 ファイル)線データ
空港・地名等のポイントShapefileNatural Earth 10m点データ
ラスタ画像(経緯度)GeoTIFF / PNG / JPEG(EPSG:4326)Natural Earth 起伏図 / NASA Blue Marble全球アスペクト比 2:1 の画像とみなして 7200 × 3600 ピクセルに正規化(内部の空間参照系タグは解釈しない)
ラスタタイル(Web メルカトル)XYZ / WMTS(PNG / JPEG)。WMS はタイルに分割して取得国土地理院タイル・IGN・EMODnet・IDEE正距円筒図法の 1 枚の中間画像にリサンプリング
格子データ(グリッド)NetCDF → 内部専用形式(NPZ)に変換OSCAR 海流データ・ERA5 風速データ(Copernicus CDS から取得)格子データ(色と矢印のフィールド)
移動体観測の記録JSON(取得時刻つきスナップショット)ADS-B・AIS・APRS の過去の記録ファイル点データ
観測の取得REST API / WebSocket / TCP テキストOpenSky Network・aisstream.io・APRS-IS点データ
衛星軌道要素OMM(JSON)CelesTrak点データおよび軌道線(SGP4 モデルで伝播計算)
サイバーイベントsyslog + GeoIP データベース(mmdb)ファイアウォールログ・MaxMind GeoLite2点データ
内部の正規化先が 3 種類しかないので、新しい形式を足すのは読み手(パーサ)を 1 本書くだけで済む。図法や中心の側は元のファイル形式を知らない。