代码拉取完成,页面将自动刷新
# http://oregonarc.com/2011/02/command-line-tile-cutter-for-google-maps-improved/
# http://media.oregonarc.com/fish/tile.py
import math
import urllib.request, urllib.parse, urllib.error
import urllib.request, urllib.error, urllib.parse
import json
akey = 'uzIatbtHgfCTr71dWxnHolfZqG6vARNc'
def latlon2px(z,lat,lon):
x = 2**z*(lon+180)/360*256
y = -(.5*math.log((1+math.sin(math.radians(lat)))/(1-math.sin(math.radians(lat))))/math.pi-1)*256*2**(z-1)
return x,y
def latlon2xy(z,lat,lon):
x,y = latlon2px(z,lat,lon)
x = int(x/256)#,int(x%256)
y = int(y/256)#,int(y%256)
return x,y
def bd_latlng2xy(z,lat,lng):
url='http://api.map.baidu.com/geoconv/v1/?'
args = {'coords':str(lng)+','+str(lat),
'from':5,
'to':6,
'output':'json',
'ak':akey}
data = urllib.parse.urlencode(args)
response = urllib.request.urlopen(url+data)
result = response.read()
result = json.loads(result)
loc = result["result"][0]
res = 2**(18-z)
x = loc['x']/res
y = loc['y']/res
return x,y
if __name__ == "__main__":
z=19
lat=31.025819
lng=121.434229
x,y = bd_latlng2xy(z,lat,lng)
print(x//256)
print(y//256) # only right when lat>0 lng>0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。