Skip to content

配置

本章节将为你讲述如何配置 ak、apiUrl 与插件以及更换资源链接,并实现一个自定义插件

配置方式

目前支持两种方式,全局配置和组件 props 传入

TIP

如果你是全局注册使用方式,那么 akapiUrlpluginspluginsSourceLink 都支持两种来源 (全局注册配置和组件 props 提供),当同时指定的时候,会优先就近原则,从组件 props 中获取。如果全局注册配置和组件 props 都提供了,则会尝试合并两个配置。

如果你是按需加载使用方式,则只支持组件 props 方式

1。通过全局注册配置 ak 与插件

全局注册 Options

属性说明类型可选值默认值版本
ak百度地图 akstring---
apiUrl自建地图 api 资源地址(一般用于离线地图)string--^2.3.0
plugins需要注册的插件PluginId[]---
pluginsSourceLink自定义插件资源地址Record<PluginId, string>---
ts
import { createApp } from 'vue'
import App from './App.vue'
import baiduMap from 'vue3-baidu-map-gl'

const app = createApp(App)
app.use(baiduMap, {
  ak: '百度地图ak',
  plugins: ['TrackAnimation']
})
app.mount('#app')

2。组件 BMap 传入 props 配置

html
<BMap
  ak='百度地图ak'
  :plugins="['TrackAnimation']"
/>

扩展插件 plugins

配置插件,通过 BMap 组件 pluginReady 可获取加载好的插件类

PluginId插件名称描述版本
TrackAnimation视角轨迹动画TrackAnimation 类提供视角轨迹动画展示效果。
Mapvgl-
MapvglThreeLayers-
Mapv-
MapvThree-
DrawingManager鼠标绘制工具条库提供鼠标绘制点、线、面、多边形(矩形、圆)的编辑工具条的开源代码库。^2.5.0
DistanceTool测距工具测距工具类^2.5.0
GeoUtils几何运算提供若干几何算法^2.5.0
AreaRestriction区域限制浏览区域限制类^2.5.0
InfoBox自定义信息窗口类似于 infoWindow,比 infoWindow 更有灵活性,比如可以定制 border,关闭按钮样式等。^2.5.0
RichMarker富标注富 Marker 类^2.5.0
LuShu路书路书类,实现 Marker 沿路线运动^2.5.0

更换插件资源链接

如果需要自建或其他地址的资源链接,则可以通过该方式自定义。同样,该方式也支持两种形式:

ts
// ...
app.use(baiduMap, {
  plugins: ['TrackAnimation'],
  pluginsSourceLink: {
    TrackAnimation: '自建或其他地址的资源链接'
  }
})
// ...

或者

html
<BMap
  :plugins=['TrackAnimation']
  :pluginsSourceLink="{
    TrackAnimation: '自建或其他地址的资源链接'
  }"
/>

自定义资源加载插件

除了提供的插件外,你还可以通过自定义插件扩展,自定义的插件将在地图加载完毕后执行与处理。

自定义的方式也很简单,你只需定义一个返回 Promise 的函数即可

ts
const customPlugin = () => {
  return new Promise((resolve) => {
    console.log('自定义插件')
    // 加载相关资源
    // 加载完成后可 resolve 一个对象, 插件名和插件所导出的类, 便于通过 pluginRead 更好的访问
    resolve({
      // [pluginName]: pluginClass
    })
  })
}

使用的方式同样也有两种:

ts
// ...
app.use(baiduMap, {
  plugins: [customPlugin]
})
// ...

或者

html
<BMap :plugins="[customPlugin]" />

Released under the MIT License.