热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mapbox矢量切片标准_下载python3中的mapbox向量切片,矢量

python3下载mapbox矢量切片通过观察mapbox的页面开发者工具里的network可以发现,打开矢量切片和字体切片pbf和prite图标的链接,

python3下载mapbox矢量切片

通过观察mapbox的页面开发者工具里的network可以发现,打开矢量切片和字体切片pbf和prite图标的链接,即可下载文件。所以写了个python程序不断请求mapbox的页面,下载矢量切片。用同样的方法可以下载mapbox的style的json文件和字体文件。

import requests

import os

def download(z, x, y, n):

url1 = 'https://api.mapbox.com/v4/mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7/'

url3 = '?sku=101QpzaqVFURD&access_token=your token'

url2 = str(z)+'/'+str(x)+'/'+str(y)+'.vector.pbf'

url = url1+url2+url3

req = requests.get(url)

filename = str(n-y)+'.vector.pbf'

print(url.split('/')[-3]+'/'+url.split('/')[-2]+'/'+filename)

if req.status_code != 200:

print('下载异常')

return False

try:

# 创建文件夹

path = "d:/wojtekP/map/"+url.split('/')[-3]+'/'+url.split('/')[-2]

isExist = os.path.exists(path)

if not isExist:

os.makedirs(path)

with open(path+'/'+filename, 'wb+') as f:

# req.content为获取html的内容

f.write(req.content)

print('下载成功')

except Exception as e:

print(e)

if __name__ == '__main__':

# y坐标逆序命名

# x与y的值每层按指数递增,第z层,x,y取值范围都为0----2^z-1,center[-180,-90]为x,y最大处

# # 第0到第5层的每个pbf矢量切片全下

for z in range(0, 6):

for x in range(0, 2**z):

for y in range(0, 2**z):

download(z, x, y, 2**z-1)

# # 第6层到第10层开始,下一部分(广东)的矢量切片

z = 6

n = 2**z-1

for x in range(50, 55):

for y in range(25, 30):

download(z, x, y, n)

z = 7

n = 2**z-1

for x in range(100, 110):

for y in range(50, 60):

download(z, x, y, n)

# 图层过多切片文件,可以多个python文件多线程分范围分别下载

z = 8

n = 2**z-1

for x in range(200, 220):

for y in range(100, 120):

download(z, x, y, n)

z = 9

n = 2**z-1

for x in range(400, 440):

for y in range(200, 240):

download(z, x, y, n)

z = 10

n = 2**z-1

for x in range(800, 880):

for y in range(400, 480):

download(z, x, y, n)

# 第11层开始,下一部分(广州)的矢量切片

z = 11

n = 2**z-1

for x in range(1640, 1680):

for y in range(860, 900):

download(z, x, y, n)

z = 12

n = 2**z-1

for x in range(3320, 3350):

for y in range(1760, 1800):

download(z, x, y, n)

z = 13

n = 2**z-1

for x in range(6650, 6690):

for y in range(3540, 3570):

download(z, x, y, n)

z = 14

n = 2**z-1

for x in range(13320, 13370):

for y in range(7090, 7130):

download(z, x, y, n)

z = 15

n = 2**z-1

for x in range(26640, 26720):

for y in range(14180, 14240):

download(z, x, y, n)

z = 16

n = 2**z-1

for x in range(53300, 53440):

for y in range(28350, 28510):

download(z, x, y, n)



推荐阅读
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
author-avatar
曹彩节
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有