メルカトル図法

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

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

{λ, φ} -> 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乗にズーム レベル (2 × zoom) を掛けた値に等しいグリッドを形成します。

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

col1,z+1 = (2*colz) + 1row1,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] これがアドレッシング方式です。

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

」に一致する結果は 件です

    」に一致する結果はありません