Skip to content

底图模块 BaseMaps ​

底图负责提供场景的地理背景,不属于业务数据图层。BMapViewer 因此使用独立的 BaseMaps 命名空间管理离线瓦片、互联网地图 Provider、坐标偏移和自定义切片方案;MapLayers 只保留点、线、面、气泡、热力图和三维场景等业务图层。

js
import { BaseMaps } from 'b-map-viewer'

模块组成 ​

能力API
底图生命周期BaseMaps.BaseMap
Provider 工厂BaseMaps.createImageryProvider
在线地图AMapImageryProvider、BaiduImageryProvider、TencentImageryProvider、ArcGISImageryProvider、TdtImageryProvider、GoogleImageryProvider、GeoVisImageryProvider
三维地形CesiumTerrain、createCesiumTerrainProvider、TdtTerrain、TdtTerrainProvider
坐标纠偏GCJ02TilingScheme、BD09TilingScheme、CoordTransform
自定义切片CustomGeographicTilingScheme、CustomMercatorTilingScheme
百度投影BD09Projection

组件案例目录 ​

底图实现方式文档与实时案例
本地离线瓦片BaseMap / offline查看离线瓦片
自定义 ProvidercreateImageryProvider查看自定义 Provider
高德地图AMapImageryProvider查看高德地图
百度地图BaiduImageryProvider查看百度地图
腾讯地图TencentImageryProvider查看腾讯地图
ArcGIS 全球影像ArcGISImageryProvider查看 ArcGIS
Google 地图GoogleImageryProvider查看 Google 地图
天地图TdtImageryProvider查看天地图
天地图三维地形TdtTerrain / TdtTerrainProvider查看天地图三维地形
Cesium 官方全球地形CesiumTerrain查看 Cesium World Terrain
星图地球GeoVisImageryProvider查看星图地球

天地图、星图地球和 Cesium World Terrain 需要开发者凭证,配置方式分别见 天地图、星图地球 和 Cesium 官方全球地形。公开文档不会嵌入访问 Key 或 Token。

在线底图 style 对照 ​

底图默认示例可选 style说明
高德地图imgimg、elec、cva影像、电子地图、标注
百度地图normalimg、vec、normal、dark影像、矢量、标准地图、暗色自定义样式
Google 地图elecimg、elec、ter、cva、img_cva影像、电子地图、地形、标注、影像标注混合
星图地球vecimg、vec、ter、cia、cat影像、矢量、地形及对应标注
天地图vecvec、cva、img、cia、ter矢量、矢量标注、影像、影像标注、地形晕渲影像
腾讯地图1img、1影像、经典地图

百度 dark 需要同时配置具有访问权限的暗色瓦片 url;SDK 不会回退到已失效的旧版公共自定义样式地址。天地图和星图地球还需要对应服务的 Key。

BaseMap ​

new BaseMaps.BaseMap(viewer, config) 创建并立即加载一个底图。实例只管理自身创建的影像资源,页面销毁时调用 destroy() 即可。

js
const baseMap = new BaseMaps.BaseMap(viewer, {
  type: 'offline',
  url: '/tiles/{z}/{x}/{reverseY}.png',
  crs: 'GCJ02',
  minimumLevel: 1,
  maximumLevel: 12,
  themeColor: '#34A4FF',
})

通用配置 ​

参数类型默认值说明
typestringurl-templateoffline、url-template、amap、baidu、tencent、arcgis、tdt、google 或 geovis
providerImageryProvider-直接传入已创建的 Cesium Provider,优先级高于 type
providerOptionsobject{}额外传递给 Provider 的配置
indexnumber0加入 viewer.imageryLayers 的位置
showbooleantrue初始可见性
themeColorstring-可选的暗色滤镜目标色
layerOptionsobject{}传递给 Cesium.ImageryLayer 的参数
crsstring-底图坐标系配置;离线 GCJ-02 瓦片可传 GCJ02,在线 Provider 的具体含义见对应文档
url、minimumLevel 等--未被底图管理器消费的字段会继续传给 Provider

各 Provider 的 style 含义、兼容别名、凭证模式和地址覆盖方式见 多源 Provider。

生命周期方法 ​

方法说明
load(config)移除当前底图并按完整配置重新加载
switch(config)合并当前配置后切换底图
getImageryLayer()返回当前 Cesium.ImageryLayer
getProvider()返回当前 ImageryProvider
show() / hide()控制底图可见性
setTheme(color) / removeColor()设置或清理底图颜色滤镜
remove()从 Viewer 移除底图,实例仍可再次 load
destroy()移除底图并释放 Viewer 引用

切换底图 ​

js
const baseMap = new BaseMaps.BaseMap(viewer, {
  type: 'offline',
  url: '/tiles/{z}/{x}/{reverseY}.png',
})

baseMap.switch({
  type: 'amap',
  style: 'img',
  crs: 'WGS84',
  themeColor: undefined,
})

从旧版迁移 ​

底图坐标系参数统一使用 crs。旧的 coordinateSystem 暂时保留为兼容别名,新代码应改为:

diff
- coordinateSystem: 'GCJ02'
+ crs: 'GCJ02'

底图不再由 MapLayers 导出:

diff
- const baseMap = new MapLayers.BaseMapLayer(viewer, config)
- baseMap.removeLayer()
+ const baseMap = new BaseMaps.BaseMap(viewer, config)
+ baseMap.destroy()

有关具体服务参数,请继续阅读 多源 Provider、离线瓦片 和 坐标系与自定义切片。

互联网底图的版权、访问频率、Token 和服务可用性由对应数据提供方管理。生产环境请使用你拥有合法权限的服务地址与凭证。

基于 Apache-2.0 许可发布