littlebot
Published on 2025-04-17 / 0 Visits
0

【源码】基于 Vue3 和 TypeScript 的天地图陕西地图扩展系统

项目简介

本项目是基于 Vue3 和 TypeScript 构建的天地图陕西地图扩展系统。结合天地图陕西的 mapbox-gl api,对 mapboxgl 地图对象进行了功能扩展,能帮助开发者更便捷地开发地图相关应用,提供了丰富的地图配置与管理功能。

项目的主要特性和功能

  1. 多坐标系支持:提供 CGCS2000 和 web 墨卡托两种地图坐标系的 api,可按需选择调用。
  2. 灵活的引入方式:支持在线引用和下载离线引入地图开发包资源。
  3. 地图对象扩展:对 mapboxgl 的 Map 对象进行扩展,实现底图与非底图分组,重新实现 addLayer 方法,方便图层管理。
  4. 内置常用地图配置:内置多种常用地图配置,使用地图 id 标识,支持矢量瓦片服务和影像服务。
  5. 便捷的底图切换:通过 createMap 方法初始化 Map 对象后,可结合 switchBaseMap 实现便捷的底图切换功能。
  6. 灵活的地图配置:基于 mapboxgl 的 MapOptions 进行扩展,支持使用默认地图 id 或对象配置 basemap,且可自定义地图样式。

安装使用步骤

前提条件

假设用户已经下载了本项目的源码文件,并且已经安装了 Node.js 和 npm。

安装依赖

bash npm install @jindin/mapboxgl-mapex

引入地图开发包资源

在线引用

打开 index.html,文件内直接引入以下 js、css 地址: ```html

Vite + Vue

```

下载离线引入

  1. 在 vite 项目中,将 mapbox-gl-cgcs2000.jsmapbox-gl.css 两个文件包放置在根目录下的 public 文件(项目中没有则自己创建)下,比如 public/libs/mapbox-gl 文件夹下。
  2. 引入到 index.html 中: ```html Vite + Vue + TS

```

使用地图对象

在 vue 代码中需要使用的地方使用 window 解构: javascript //获得 mapboxgl const { mapboxgl } = window; //结构获得mapboxgl mapboxgl.accessToken = "你自己申请的key"; //初始化创建map对象 const map = new mapboxgl.Map(option);

使用 mapboxgl-mapex

```javascript import { Map, createMap, ISMapConfig } from "@jindin/mapboxgl-mapex";

const { mapboxgl } = window; mapboxgl.accessToken = "申请token";

//方法一:new 地图对象 const map = new mapboxgl.Map(option); //方法二【推荐】:配合ISMapconfig,使用createMap初始化map对象 //const map = createMap(mapconfig, basemapId);

map.on("load", () => { //do something }); ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】