离线部署mapbox


前言

我们在使用mapbox过程中,会遇到在内网部署的情况,在内网环境且不能访问外网的情况下我们是无法使用mapbox的在线资源的,这就需要我们进行离线化部署。
注意:离线化部署只用于学习交流,Mapbox GL JS > v2.0.0 需要收费的,注意查看mapbox协议内容


一、下载资源

其实如何下载资源和离线部署我在之前一篇博客有介绍原地址,只不过现在一些下载器失效了,写的也不够详细,现在详细说明。

字体及雪碧图下载

使用下载工具,地址,注意该下载工具下载的矢量瓦片可能会失效,不过没关系,我们只要下载字体及雪碧图就可以了。如果不想下载,我这边有现成下载好的,下载地址
在这里插入图片描述
在这里插入图片描述

矢量瓦片下载

下载工具
该下载工具在原工具基础上新增了输入范围及导入geojson范围下载
在这里插入图片描述
提示:不要一次性下载范围过大或者级别过大,瓦片数量根据级别成指数型增加,下载全国范围可以一次性下载到10级,11级往后瓦片数量会很大,建议一个省范围下载11-12级。下载级别越大选择范围越小,多分区域下载完合并就可以了

下载完以后将瓦片放到source/composite/tiles文件夹下
在这里插入图片描述

样式配置

样式配置可以直接在mapbox studio中直接配置好下载,没有账号的话需要先注册一个,目前注册mapbox账号有点麻烦。我这里提供了一个自己在mapbox下载的样式文件。下载地址
我们只需要style.json文件就可以了,修改里面的sources、sprite、glyphs地址,换成自己部署的地址就可以啦,最终样式类似如下

{
  "owner": "",
  "metadata": {
    "mapbox:trackposition": true,
    "mapbox:autocomposite": true,
    "mapbox:origin": "basic-v1",
    "mapbox:groups": {
      "Walking, cycling, etc., surface": {
        "collapsed": true,
        "name": "Walking, cycling, etc., surface"
      },
      "Transit, built": {
        "collapsed": true,
        "name": "Transit, built"
      },
      "Road network, tunnels": {
        "collapsed": false,
        "name": "Road network, tunnels"
      },
      "Land & water, water": {
        "collapsed": true,
        "name": "Land & water, water"
      },
      "Natural features, natural-labels": {
        "collapsed": true,
        "name": "Natural features, natural-labels"
      },
      "Place labels, place-labels": {
        "collapsed": true,
        "name": "Place labels, place-labels"
      },
      "Buildings, extruded": {
        "collapsed": true,
        "name": "Buildings, extruded"
      },
      "Buildings, built": {
        "collapsed": false,
        "name": "Buildings, built"
      },
      "Road network, surface": {
        "collapsed": false,
        "name": "Road network, surface"
      },
      "Point of interest labels, poi-labels": {
        "collapsed": true,
        "name": "Point of interest labels, poi-labels"
      },
      "Administrative boundaries, admin": {
        "collapsed": true,
        "name": "Administrative boundaries, admin"
      },
      "Transit, transit-labels": {
        "collapsed": false,
        "name": "Transit, transit-labels"
      },
      "Road network, road-labels": {
        "collapsed": false,
        "name": "Road network, road-labels"
      },
      "Walking, cycling, etc., barriers-bridges": {
        "collapsed": true,
        "name": "Walking, cycling, etc., barriers-bridges"
      },
      "Buildings, building-labels": {
        "collapsed": true,
        "name": "Buildings, building-labels"
      },
      "Land & water, land": {
        "collapsed": false,
        "name": "Land & water, land"
      },
      "Road network, bridges": {
        "collapsed": true,
        "name": "Road network, bridges"
      },
      "Walking, cycling, etc., tunnels": {
        "collapsed": true,
        "name": "Walking, cycling, etc., tunnels"
      },
      "Land & water, built": {
        "collapsed": true,
        "name": "Land & water, built"
      },
      "Walking, cycling, etc., walking-cycling-labels": {
        "collapsed": true,
        "name": "Walking, cycling, etc., walking-cycling-labels"
      }
    },
    "mapbox:sdk-support": {
      "android": "10.6.0",
      "js": "2.0.0",
      "ios": "10.6.0"
    },
    "mapbox:type": "default"
  },
  "sources": {
    "composite": {
      "type": "vector",
      "url": "source/composite/mapbox.mapbox-streets-v8.json" // 
    }
  },
  "visibility": "private",
  "bearing": 0,
  "created": "2023-11-09T12:03:12.872Z",
  "center": [
    117.50608674907221,
    30.726162664416478
  ],
  "zoom": 10,
  "glyphs": "fonts/{fontstack}/{range}.pbf",
  "version": 8,
  "protected": false,
  "draft": false,
  "name": "wzq",
  "sprite": "sprites/sprite",
  "layers":[
  {
        "id": "land",
        "type": "background",
        "metadata": {
            "mapbox:featureComponent": "land-and-water",
            "mapbox:group": "Land & water, land"
        },
        "layout": {},
        "paint": {
            "background-color": [
                "interpolate",
                ["linear"],
                ["zoom"],
                9,
                "hsl(20, 20%, 95%)",
                11,
                "hsl(20, 18%, 91%)"
            ]
        }
    },
  	...
  ]
  "modified": "2023-11-09T12:17:44.654Z",
  "pitch": 0,
  "id": "clor53zhk00mp01pm0ip9eti5",
  "fog": {
    "high-color": [
      "interpolate",
      [
        "exponential",
        1.2
      ],
      [
        "zoom"
      ],
      5.5,
      "hsl(205, 76%, 5%)",
      6,
      "hsl(205, 76%, 78%)"
    ],
    "color": [
      "interpolate",
      [
        "exponential",
        1.2
      ],
      [
        "zoom"
      ],
      5.5,
      "hsl(205, 76%, 90%)",
      6,
      "hsl(57, 99%, 99%)"
    ],
    "range": [
      -1,
      10
    ],
    "horizon-blend": [
      "interpolate",
      [
        "exponential",
        1.2
      ],
      [
        "zoom"
      ],
      5.5,
      0.04,
      6,
      0.1
    ],
    "space-color": [
      "interpolate",
      [
        "exponential",
        1.2
      ],
      [
        "zoom"
      ],
      5.5,
      "hsl(205, 76%, 10%)",
      6,
      "hsl(205, 76%, 90%)"
    ],
    "star-intensity": [
      "interpolate",
      [
        "exponential",
        1.2
      ],
      [
        "zoom"
      ],
      5.5,
      0.3,
      6,
      0
    ]
  }
}

二、部署

去除token验证

参考地址
在这里插入图片描述

nginx部署

直接以静态资源用nginx部署就可以啦,或者用其他方式部署都可以,如IIS
完整部署文件下载,包含字体、雪碧图、矢量瓦片(全国1-10级,安徽11-13,合肥主城区14-18级),去除token验证。
交流Q 1826356125

最终效果

在这里插入图片描述

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、付费专栏及课程。

余额充值