加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
gmap_utils.py 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
kyer 提交于 2018-02-28 14:45 . feat: upgrade python2 to python3
# 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
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化