Skip to content

ChartMapCq3D 重庆3D地图

用于展示重庆3D地图数据的组件,支持3D高度映射、颜色映射、标签、图例等功能。基于 ECharts GL 实现。

注意:使用本组件需要安装 echarts-gl 依赖。

bash
npm install echarts-gl

基础用法

基础的重庆3D地图用法,使用默认的序时进度颜色范围,高度根据数据值自动计算。

查看代码

自定义高度缩放

通过 height-scale 属性可以控制3D地图的高度缩放比例。

查看代码

自定义高度范围

通过 min-heightmax-height 属性可以控制3D地图的高度范围。

查看代码

自定义颜色范围

通过 ranges 属性可以自定义颜色范围配置。

查看代码

隐藏标签

通过 show-label 属性可以隐藏区域标签。

查看代码

隐藏图例

通过 show-legend 属性可以隐藏图例。

查看代码

自定义图例位置

通过 legend-position 属性可以自定义图例位置。

查看代码

自定义视角

通过 view-control 属性可以自定义3D地图的视角和交互。

查看代码

自动旋转

通过 view-control 属性可以启用3D地图的自动旋转功能。

查看代码

自定义光照

通过 light 属性可以自定义3D地图的光照效果。

查看代码

自定义样式

通过 area-styleemphasislabel-style 等属性可以自定义地图样式。

查看代码

禁用漫游

通过 roam 属性可以禁用鼠标缩放和平移漫游功能。

查看代码

只允许缩放

通过 roam="scale" 可以只允许缩放,禁止拖拽。

查看代码

自定义提示框

通过 tooltip-formatter 属性可以自定义提示框的显示内容。

查看代码

使用本地GeoJSON文件

组件支持通过 geo-json 属性传入本地GeoJSON文件。下面的demo使用项目中的本地文件。

查看代码

默认GeoJSON数据

组件会自动加载默认的重庆地图GeoJSON数据,加载顺序:

主地图数据

  1. 优先从本地文件 src/assets/geo/chongqing.json 加载(如果存在)
  2. 如果本地文件不存在,从阿里云DataV API加载:https://geo.datav.aliyun.com/areas_v3/bound/500000_full.json

API

Props

参数说明类型可选值默认值
data地图数据数组ChartMapCq3DDataItem[][]
geoJson地图GeoJSON数据anyundefined
mapName地图名称(用于注册echarts地图)string'chongqing'
ranges颜色范围配置ChartMapCq3DRange[]undefined
defaultRanges是否使用默认颜色范围(序时进度)booleantrue
showLabel是否显示标签booleantrue
labelStyle标签样式LabelStyle{ color: '#ffffff', fontSize: 10, fontWeight: 'normal' }
showLegend是否显示图例booleantrue
legendPosition图例位置stringleft / right / top / bottom'right'
legendTitle图例标题string'序时进度'
height图表高度number | string600
width图表宽度number | string'100%'
backgroundColor背景颜色string'transparent'
areaStyle地图区域样式AreaStyle{ borderColor: '#fff', borderWidth: 1 }
emphasis高亮样式Emphasis{ borderColor: '#333', borderWidth: 2 }
showTooltip是否显示提示框booleantrue
tooltipFormatter提示框格式化函数(params: any) => stringundefined
roam是否开启鼠标缩放和平移漫游boolean | 'scale' | 'move'true / false / 'scale' / 'move'true
heightScale3D地图高度缩放比例(0-1)number0.1
minHeight3D地图最小高度number0
maxHeight3D地图最大高度number100
light光照配置Light{ main: { intensity: 1, shadow: true }, ambient: { intensity: 0.3 } }
viewControl视角配置ViewControl{ alpha: 35, beta: 0, distance: 100, ... }

ChartMapCq3DDataItem

参数说明类型可选值默认值
name区域名称string
value数据值(用于颜色映射和高度)number
color自定义颜色(可选,会覆盖根据value计算的颜色)string
height自定义高度(可选,会覆盖根据value计算的高度)number

ChartMapCq3DRange

参数说明类型可选值默认值
min最小值(包含)number
max最大值(不包含,如果是最后一个范围则包含)number
color该范围对应的颜色string
label范围标签string

LabelStyle

参数说明类型可选值默认值
color标签颜色string'#ffffff'
fontSize标签字体大小number10
fontWeight标签字体粗细string | number'normal'

AreaStyle

参数说明类型可选值默认值
areaColor区域填充颜色string'#5b9bd5'
borderColor区域边框颜色string'#fff'
borderWidth区域边框宽度number1

Emphasis

参数说明类型可选值默认值
areaColor高亮时区域填充颜色string'#ffff00'
borderColor高亮时区域边框颜色string'#fff'
borderWidth高亮时区域边框宽度number2

Light

参数说明类型可选值默认值
main主光源配置MainLight{ intensity: 1, shadow: true }
ambient环境光配置AmbientLight{ intensity: 0.3 }

MainLight

参数说明类型可选值默认值
intensity光照强度number1
shadow是否启用阴影booleantrue

AmbientLight

参数说明类型可选值默认值
intensity环境光强度number0.3

ViewControl

参数说明类型可选值默认值
alpha视角的 alpha 角度(上下旋转)number35
beta视角的 beta 角度(左右旋转)number0
distance视角距离number100
minDistance最小视角距离number40
maxDistance最大视角距离number200
rotateSensitivity旋转灵敏度number1
zoomSensitivity缩放灵敏度number1
panSensitivity平移灵敏度number1
autoRotate是否自动旋转booleanfalse
autoRotateDirection自动旋转方向stringcw / ccw'cw'
autoRotateSpeed自动旋转速度number10

注意事项

  1. 依赖要求:使用本组件需要安装 echarts-gl 依赖:

    bash
    npm install echarts-gl
  2. 地图数据:使用本组件需要提供重庆地图的GeoJSON数据。可以通过以下方式获取:

  3. 地图注册:地图数据可以通过 geoJson 属性直接提供,组件会自动注册;或者在外部使用 echarts.registerMap() 注册。

  4. 颜色映射:默认使用序时进度的5级颜色映射,可以通过 ranges 属性自定义颜色范围。

  5. 高度映射:3D地图的高度根据数据值自动计算,可以通过 height-scalemin-heightmax-height 属性调整。

  6. 性能优化:3D地图渲染需要较多计算资源,建议在数据量较大时适当调整 height-scale 和视角配置以优化性能。