下载mapbox离线字体库Python脚本

1.使用的字体库为超图的字体库
2.在线字体库地址为:https://iserver.supermap.io/iserver/services/map-beijing/rest/maps/beijingMap/tileFeature/sdffonts/{fontstack}/{range}.pbf
3.在使用mapbox-gl直接创建地图时,glyphs属性设置为在线地址,可以查看到具体的访问pbf二进制文件的地址,例如
https://iserver.supermap.io/iserver/services/map-beijing/rest/maps/beijingMap/tileFeature/sdffonts/Open%20Sans%20Regular,Arial%20Unicode%20MS%20Regular/0-255.pbf
4.创建文件夹“Open Sans Regular,Arial Unicode MS Regular”,将下载下来的pbf文件放到该文件夹下,然后将mapbox-gl的glyphs属性设置为自定义路径,例如:‘…/…/glyphs/{fontstack}/{range}.pbf’,将“Open Sans Regular,Arial Unicode MS Regular”文件夹放到“glyphs”文件夹下,{fontstack}和{range}为固定格式不需要改。

import requests
import os

base_url = 'https://iserver.supermap.io/iserver/services/map-beijing/rest/maps/beijingMap/tileFeature/sdffonts/Open%20Sans%20Regular,Arial%20Unicode%20MS%20Regular/'
filename_template = '{}-{}.pbf'
download_dir = 'G:/GIS/glyphs/'

for start in range(0, 65536, 256):
    end = start + 255
    url = base_url + filename_template.format(start, end)
    filename = filename_template.format(start, end)

    response = requests.get(url)

    if response.status_code == 200:
        filepath = os.path.join(download_dir, filename)
        with open(filepath, 'wb') as f:
            f.write(response.content)
            print(f"Downloaded {filename} ({len(response.content)} bytes)")
    else:
        print(
            f"Failed to download {filename} ({response.status_code} {response.reason})")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mapbox是一个领先的地图平台,它提供了丰富的地图数据和定制化的地图服务。对于一些特殊情况,比如需要在没有网络连接的环境下使用地图,Mapbox也提供了离线部署的解决方案。 Mapbox离线部署的基本思路是将地图数据提前下载到本地设备上,然后通过相应的技术手段进行存储和调用,从而实现在没有网络连接的情况下依然可以使用地图和相关服务。离线部署可以提供更稳定和可靠的地图服务,尤其是在偏远地区或者容易断网的环境中。 要实现Mapbox离线部署,首先需要登陆Mapbox官网,根据需求选择合适的地图服务和数据。然后下载对应的地图数据,并将其存储到本地设备中。在代码中,需要使用Mapbox提供的SDK和API来调用本地存储的地图数据,从而实现离线地图的展示和功能。 除了基本的离线地图展示功能,Mapbox离线部署还可以支持定制化地图样式、添加标记和路线规划等高级功能。用户可以根据自己的需求和场景来定制离线地图服务,从而实现更个性化的地图展示和功能。 总的来说,Mapbox离线部署可以为用户在没有网络连接的情况下提供稳定可靠的地图服务,是一个非常实用和方便的解决方案。同时,随着技术的不断发展和Mapbox平台的进步,离线部署的功能和性能也将会不断提升,为用户带来更好的使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值