WMTS:特定のズームレベルで、位置情報(緯度、経度)をタイルインデックスに変換しますか?


14

特定の地理位置(緯度、経度)およびズームレベルのWMTSタイルのインデックス(x、y)を取得する方法を知りたいと思いました。

たとえば、(48.675、2.7)にPOIがあります。ズーム10に対応するオープンストリートマップタイルを取得します。

数学はできますか?Webサービスが必要ですか?精度:これをプログラムで行う必要があります。



Bing Maps Tiling Schemeに関する有用なMSDN記事も優れた入門書です。この記事とOSMの記事はどちらもWebメルカトル図法を想定していますが、他の投影座標系についても原理は同じです。
ケス

回答:


22

OSM wikiページは完璧です:http : //wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Lon..2Flat._to_tile_numbers_2

クイックリファレンス用に抽出された回答(擬似コード)を以下に示します。

経度/緯度/ズームがタイル番号に与えられた場合:

n = 2 ^ zoom
xtile = n * ((lon_deg + 180) / 360)
ytile = n * (1 - (log(tan(lat_rad) + sec(lat_rad)) / π)) / 2

log()この疑似コードでは、自然対数(一般的な数学構文ではしばしば「ln()」ですが、多くのプログラミング言語ではしばしば「log()」)を指すことに注意してください。

タイル番号を経度/緯度に与えます:

n = 2 ^ zoom
lon_deg = xtile / n * 360.0 - 180.0
lat_rad = arctan(sinh(π * (1 - 2 * ytile / n)))
lat_deg = lat_rad * 180.0 / π

2
待ってください、OSMの滑りやすい形式はWMTSタイル形式ですか?
スパイ

5
上記のリンクには多くの言語で実装されていることに注意してください!(現在27)
シリル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.