Pocket

【読了時間:5分】

地理院地図やGoogle mapで用いられているタイルマップ。

今回はPython言語を用いて、タイル座標からタイル北西端の緯度経度を取得するプログラムおよび緯度経度からタイル座標を取得するプラグラムを作成します。

(参考URL:http://standardization.at.webry.info/201401/article_1.html)

 

・タイル座標からタイル北西端の緯度経度を出すコード
ex)
x = 116409 # x座標
y = 51620 # y座標
z = 17 # ズームレベル

# -*- coding:utf-8 -*-
from math import pi
from math import e
from math import atan
	
def tile2latlon(x, y, z):
	lon = (x / 2.0**z) * 360 - 180 # 経度(東経)
	mapy = (y / 2.0**z) * 2 * pi - pi
	lat = 2 * atan(e ** (- mapy)) * 180 / pi - 90 # 緯度(北緯)
	print [lon,lat]

・緯度経度からタイル座標を出すコード
ex)
x = 139.727808  # 経度(東経)
y = 35.664927  # 緯度(北緯)
z = 17 # ズームレベル

# -*- coding:utf-8 -*-
from math import log
from math import tan
from math import pi

def latlon2tile(lon, lat, z):
	x = int((lon / 180 + 1) * 2**z / 2) # x座標
	y = int(((-log(tan((45 + lat / 2) * pi / 180)) + pi) * 2**z / (2 * pi))) # y座標
	print [y,x]

【執筆:桜町律】