Skip to content

BMapViewer API ​

Props ​

名称类型默认值说明
idStringundefined可选的内部容器 id
cameraObject | nullnull初始相机参数;有有效值时组件挂载后自动初始化,否则等待调用 initMap
sceneModeNumber00 为 2D,其他值为 3D
baseColorString#112441无影像时的地球基础颜色

camera 支持以下字段:

字段默认值说明
longitude125.83372000975274经度
latitude44.14712267403385纬度
height10000相机高度
pitch0俯仰角(度)
minHeight1最小相机高度
maxHeight1500000最大相机高度

Events ​

名称参数说明
readyCesium.Viewer当前组件实例首次初始化完成;每次挂载只触发一次
errorError初始化失败
click{ lon, lat, feature? }点击到地球表面时触发

Exposed methods ​

通过组件 ref 调用:

方法说明
initMap(camera)传入相机参数并幂等初始化 Viewer;初始化中复用同一 Promise,完成后重复调用返回现有实例
reinitializeMap(camera)传入相机参数,显式销毁并重建 Viewer;返回新实例,但不会重复触发 ready
flyTo(destination, duration?)飞行到经纬度位置
startClick()开启左键拾取
stopClick()关闭左键拾取
getViewer()获取当前 Cesium.Viewer
setCameraHeightRange({ minHeight?, maxHeight? })动态修改高度范围并立即应用到当前相机
getCameraHeightRange()获取当前 { minHeight, maxHeight }
restrictMaxiHeight()立即按当前范围约束一次相机高度
js
mapRef.value.flyTo(
  { longitude: 125.83372000975274, latitude: 44.14712267403385, height: 8000, pitch: -45 },
  1.5,
)

mapRef.value.setCameraHeightRange({
  minHeight: 100,
  maxHeight: 120000,
})

初始化方式 ​

传入有效的 camera 时,组件会在 onMounted 后自动初始化:

vue
<BMapViewer :camera="camera" @ready="handleReady" />

不传 camera 时,组件只渲染地图容器,不会创建 Cesium.Viewer。使用者需要通过组件 ref 主动调用 initMap(camera):

vue
<script setup>
import { onMounted, ref } from 'vue'
import { BMapViewer } from 'b-map-viewer'

const mapRef = ref(null)

onMounted(async () => {
  const viewer = await mapRef.value.initMap({
    longitude: 125.8337,
    latitude: 44.1471,
    height: 12000,
    pitch: -45,
  })
  // viewer 可在这里直接使用;组件仍会正常触发一次 ready 事件。
})
</script>

<template>
  <BMapViewer ref="mapRef" :scene-mode="1" @ready="handleReady" />
</template>

首次初始化时如果没有传入有效参数,initMap 返回 null 并触发 error 事件。Viewer 已存在时重复调用 initMap 会直接返回当前实例,不会重复创建 Viewer 或触发 ready。

SDK 模块导出 ​

导出说明
BMapViewerVue 3 Viewer 组件
useCesiumViewer 生命周期与相机 Hook
BaseMaps底图管理器、Provider、样式别名、投影与切片方案
MapLayers点、线、面、气泡、热力图和三维业务图层
WeatherEffects雨、雪、雾、沙尘、云层、闪电效果与统一天气管理器
PickTools拾取与绘制工具
EarthColor场景颜色处理工具
turfTurf 空间分析命名空间

Slot ​

tool 插槽渲染在 Viewer 容器内部,可用于地图工具栏、图例或状态面板。

基于 Apache-2.0 许可发布