import os,stat
import urllib.request
import math
import json
def downloadPicture(img_url,file_path,file_name,file_suffix):
try:
#是否有这个路径
if not os.path.exists(file_path):
#创建路径
os.makedirs(file_path)
#获得图片后缀
# file_suffix = '.png' #os.path.splitext(img_url)[1]
# file_name = time.clock()
# print(file_suffix)
#拼接图片名(包含路径)
filename = '{}/{}{}'.format(file_path,file_name,file_suffix)
print(filename)
#下载图片,并保存到文件夹中
urllib.request.urlretrieve(img_url,filename)
except IOError :
print("IOError")
except Exception :
print("Error")
# # 百度地图瓦片下载
def downloadBDtiles():
#坐标转换接口
# http://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=
zList=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
token="A4jr7kTCADiD4q6Iphl7zza1BEyYFAo8"
file_path_sl='D:/sl'
file_path_sl_label='D:/label_sl'
file_path_yx='D:/yx'
file_path_yx_label='D:/label_yx'
lefttop_point1=[118.12,33.8]#[118.12,33.8] #左上角
rightbottom_point1=[119.4,33.019] #右下角
lefttop_point_response = urllib.request.urlopen('{}{}{}{}{}{}'.format("http://api.map.baidu.com/geoconv/v1/?coords=",lefttop_point1[0],",",lefttop_point1[1],"&from=1&to=6&ak=",token))
rightbottom_point_response = urllib.request.urlopen('{}{}{}{}{}{}'.format("http://api.map.baidu.com/geoconv/v1/?coords=",rightbottom_point1[0],",",rightbottom_point1[1],"&from=1&to=6&ak=",token))
lefttop_point_json = json.loads(lefttop_point_response.read())["result"]
rightbottom_point_json = json.loads(rightbottom_point_response.read())["result"]
lefttop_point = [lefttop_point_json[0]["x"],lefttop_point_json[0]["y"]]
rightbottom_point = [rightbottom_point_json[0]["x"],rightbottom_point_json[0]["y"]]
zindex=0
for z in zList:
tile_x_min = int(lefttop_point[0] * math.pow(2,z-18)/256)
tile_x_max = int(rightbottom_point[0] * math.pow(2,z-18)/256)
while tile_x_min <= tile_x_max:
tile_y_max = int(lefttop_point[1] * math.pow(2,z-18)/256)
tile_y_min = int(rightbottom_point[1] * math.pow(2,z-18)/256)
while tile_y_min <= tile_y_max:
print(z)
print(tile_x_min)
print(tile_y_min)
img_url_sl='{}{}{}{}{}{}{}'.format("http://online1.map.bdimg.com/onlinelabel/?qt=tile&x=",tile_x_min,"&y=",tile_y_min,"&z=",z,"")
img_url_sl_label='{}{}{}{}{}{}{}'.format("http://online0.map.bdimg.com/tile/?qt=tile&x=",tile_x_min,"&y=",tile_y_min,"&z=",z,"&styles=sl&v=017")
img_url_yx ='{}{}{}{}{}{}{}'.format(" http://shangetu1.map.bdimg.com/it/u=x=",tile_x_min,";y=",tile_y_min,";z=",z,";v=009;type=sate&fm=46")
# img_url_yx_label='{}{}{}{}{}{}{}'.format("http://online1.map.bdimg.com/onlinelabel/?qt=tile&x=",tile_x_min,"&y=",tile_y_min,"&z=",z,"")
filepathsl ='{}/{}/{}'.format(file_path_sl,z,tile_x_min)
filepathsllabel ='{}/{}/{}'.format(file_path_sl_label,z,tile_x_min)
filepathyx ='{}/{}/{}'.format(file_path_yx,z,tile_x_min)
filepathyxlabel ='{}/{}/{}'.format(file_path_yx_label,z,tile_x_min)
filename = tile_y_min
file_suffix=".png"
downloadPicture(img_url_sl,filepathsl,filename,file_suffix)
downloadPicture(img_url_sl_label,filepathsllabel,filename,file_suffix)
downloadPicture(img_url_yx,filepathyx,filename,file_suffix)
# downloadPicture(img_url_yx_label,filepathyxlabel,filename,file_suffix)
tile_y_min +=1
tile_x_min +=1
zindex+=1