MapBox加载不同风格

初始化MapBox地图:

	var map = new mapboxgl.Map({
          container: 'map',
          zoom: 3,
          center: [105, 34],
          
		  //此处更改地图风格
          style: 'mapbox://styles/mapbox/satellite-v9',
          hash: false,
      });

1.户外地图(mapbox://styles/mapbox/basic-v9)新版:(mapbox://styles/mapbox/outdoors-v12)支持三维地图
在这里插入图片描述

2.街道地图(mapbox://styles/mapbox/streets-v9) 新版:(mapbox://styles/mapbox/streets-v12)支持三维地图
在这里插入图片描述
3.浅色地图(mapbox://styles/mapbox/light-v9) 新版:(mapbox://styles/mapbox/light-v11)支持三维地图
在这里插入图片描述
4.深色地图(mapbox://styles/mapbox/dark-v9) 新版:(mapbox://styles/mapbox/dark-v11)支持三维地图
在这里插入图片描述
5.鲜艳地图(mapbox://styles/mapbox/bright-v9)
在这里插入图片描述
6.影像地图(mapbox://styles/mapbox/satellite-v9)
在这里插入图片描述
7.导航地图+实时交通路况+白天(mapbox://styles/mapbox/navigation-preview-day-v2)
在这里插入图片描述
8.导航地图+实时交通路况+夜晚(mapbox://styles/mapbox/navigation-preview-night-v2)
在这里插入图片描述
9.导航地图+白天
(mapbox://styles/mapbox/navigation-guidance-day-v2)
在这里插入图片描述

10.导航地图+夜晚
(mapbox://styles/mapbox/navigation-guidance-night-v2)
在这里插入图片描述

### 如何在 Mapbox加载 PBF 文件 #### 使用 `protobufjs` 处理 PBF 文件 为了在 JavaScript 中处理 PBF 文件,可以使用 `protobufjs` 库。安装此库可以通过 npm 或 yarn 来完成[^1]。 ```bash npm install protobufjs ``` 或者: ```bash yarn add protobufjs ``` #### 加载和解析 PBF 文件 一旦安装好 `protobufjs`,就可以通过读取二进制文件并将其传递给解码函数来加载和解析 PBF 文件。这里展示一个基本的例子说明如何操作这些数据: ```javascript const fs = require('fs'); const protoLoader = require('@grpc/proto-loader'); const { load } = require('protobufjs'); // 假设有一个 .proto 文件描述了消息结构 load("path/to/your/file.proto", function(err, root) { if (err) throw err; const MyMessage = root.lookupType("package.MyMessage"); // 从本地文件系统读取 pbf 文件的内容 let buffer = fs.readFileSync('/path/to/pbf-file.pbf'); try { // 解析缓冲区中的 Protobuf 消息 let message = MyMessage.decode(buffer); console.log(JSON.stringify(message)); } catch(e){ console.error(`Failed to decode the file: ${e.message}`); } }); ``` 这段代码展示了如何利用 `protobufjs` 和 Node.js 的内置模块 `fs` 来加载 `.pbf` 文件,并尝试对其进行反序列化以便进一步处理。 #### 将 PBF 数据应用到 Mapbox 地图上 对于希望直接在浏览器环境中工作的开发者来说,通常会结合使用 `mapbox-gl-js` 和预编译好的 Protocol Buffers 类型定义(通常是 GeoJSON 转换后的形式)。当涉及到矢量切片时,则可以直接引用由服务器端生成的 URL 模板指向的地图样式 JSON 配置中指定的服务地址[^3]。 例如,在 HTML 页面内初始化带有自定义源的地图实例如下所示: ```html <script src='https://api.mapbox.com/mapbox-gl-js/v2.9.0/mapbox-gl.js'></script> <link href='https://api.mapbox.com/mapbox-gl-js/v2.9.0/mapbox-gl.css' rel='stylesheet' /> <div id="map"></div> <script> mapboxgl.accessToken = 'YOUR_MAPBOX_ACCESS_TOKEN'; var map = new mapboxgl.Map({ container: 'map', style: 'mapbox://styles/mapbox/streets-v11', // 可替换为其他风格或包含自定义层的链接 center: [-74.5, 40], zoom: 9, }); // 添加来自远程服务器的矢量瓦片源 map.on('load', function () { map.addSource('custom-source-id', { type: 'vector', url: 'mapbox://tileset.id' }); // 创建新图层基于上述添加的数据源 map.addLayer({ "id": "layer-name", "type": "fill", "source": "custom-source-id", "source-layer": "specific-layer-in-tileset", "paint": { "fill-color": "#088" } }); }); </script> ``` 在这个例子中,`url` 属性指定了提供矢量瓦片服务的位置;而 `"source-layer"` 则对应于特定的一组特征集名称——这些都是预先配置好了的信息,取决于所使用的具体 tilesets。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王八八。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值