HERE Map Tile v2 開発者ガイド

メルカトル図法

HERE Map Tile v2 は、 正規化されたメルカトル図法を使用して、球 ( 地球 ) の表面のポイントを平面上のポイントにマッピングすることで取得されたマップタイルを提供します。

メルカトル図法の基本的な式は次のとおりです。

{ λ 、 φ } -> x[-1 、 1] y[-1 、 1]

この数式では、次の操作を

λ = 経度
φ = 緯度
X = λ / π
Y = ln ( tan )( π /4+ φ /2 ) / π

平面は、地図タイルの正方形のグリッドとして地球を表します。 グリッドのサイズは、マップのズーム レベルによって異なります。 最も低いズーム レベルでは、世界は 1 つのマップ タイルに含まれています。 次に高いズーム レベルでは、幅が 2 つのタイル、高さが 2 つのタイル (2 x 2) が世界になっています。その上の次のレベルでは、グリッドは 4 x 4 、 8 x 8 、 16 x 16 などのように、特定のリージョンの最大ズームに達します。 つまり、各ズーム レベルでは、世界の完全な地図を構成するタイルがグリッドを形成します。このグリッドでは、タイルの数は、 2 のべき乗にズーム レベル (2 × zoom) を掛けた値の 2 に等しくなります。

2 つの連続するズームレベルにおけるタイル間の関係は、次のように表されます。

col1、 z+1 = (2 * colz)+ 1 row1、 z+1 = (2 * rowz)+ 1

この数式では、次の操作を

= タイルグリッドの列番号
= タイルグリッドの行番号
Z = ズーム レベル

次の図は、この図をグラフィカルに示しています。

図 1. さまざまなズームレベルのタイル
この情報を使用して、アプリケーション内の特定の地理的位置のマップ タイルのグリッド座標 ( 行および列 ) を取得できます。 次の擬似コードには、完全なアルゴリズムが含まれています。
--- javascript ---
var lat = 52.525439, // Latitude
lon = 13.38727,    // Longitude
z = 12,        // Zoom level
latRad,
n,
xTile,
yTile;

latRad = lat * Math.PI / 180;
n = Math.pow(2, z);
xTile = n * ((lon + 180) / 360);
yTile = n * (1-(Math.log(Math.tan(latRad) + 1/Math.cos(latRad)) /Math.PI)) / 2;

--- output ---
lat_rad = 0.916
n = 4096
xTile = 2200.31 // Column
yTile = 1343.20 // Row

ズーム レベルおよびタイルの行および列は、マップ タイルリクエストの「 / 」文字で区切られた URL 変数として使用できます。 これらは、次の順序で提供する必要があります。 zoom/column/row これは、 [Z]/[X]/[Y] アドレス指定方式です。

マップ タイルの仕様の前には通常、他のパス変数があり、その後にさらにパス変数やクエリーパラメータを続けることができます。