凯~
文章11
标签12
分类4
如何建立一个室内3d导航项目(二)- mapbox工程的建立

如何建立一个室内3d导航项目(二)- mapbox工程的建立

如何建立一个室内3d导航项目(二)- mapbox工程的建立

上一篇我们选定了mapbox作为项目开发的地图框架,本篇文章将介绍mapbox工程的建立

一、安装mapbox库

进入任意一个vue3 vite项目的目录,执行

1
npm install mapbox-gl@1.13.3

二、引入库

1
2
import mapboxgl from 'mapbox-gl';
import 'mapbox-gl/dist/mapbox-gl.css';//非常重要,不引入无法地图无法正常显示,笔者在这踩了坑

三、初始化地图

以天地图为例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
let mapInstance = null;
const container = containerHisRef.value as HTMLElement;//获取地图dom
const webKey = "xx";
mapInstance = new mapboxgl.Map({
container,
style: {
version: 8,
glyphs: "/font/{fontstack}/{range}.pbf",//很重要,mapbox地图的字体库是要手动引入的,不然无法显示文字,不知道为何这么麻烦
sources: {
tianditu: {
type: "raster",
tiles: [
`https://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${webKey}`,//天地图的url也很有讲究,网上的很多教程都过于老旧,显示不正常就自己探索试试,笔者写这篇文章时这个url是没问题的
],
tileSize: 256,
},
tianditu_annotation: {
type: "raster",
tiles: [
`https://t0.tianditu.gov.cn/cva_w/wmts?&service=WMTS&version=1.0.0&request=GetTile&layer=cva&style=default&format=tiles&TileMatrixSet=w&TileMatrix={z}&TileRow={y}&TileCol={x}&tk=${webKey}`,
],
tileSize: 256,
},
},
layers: [{
id: "tianditu",
type: "raster",
source: "tianditu",
},
{
id: "tianditu_annotation",
type: "raster",
source: "tianditu_annotation",
},
],
},
center: [121, 31], //地图默认中心点经纬度
zoom: 17,
pitch: 20,
});

地图加载后的回调:

1
2
3
mapInstance.on('load', async () => {//如果有异步请求可以加上async

});

四、结束语

以上就是mapbox工程的建立过程。

本文作者:凯~
本文链接:https://blog.diyultra.top/2025/04/21/06navi3d2/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×