Skip to content

ChartMapCq 重庆地图

用于展示重庆地图数据的组件,支持颜色映射、主城区独立显示、标签、图例等功能。

基础用法

基础的重庆地图用法,使用默认的序时进度颜色范围。

查看代码

隐藏主城区

通过 show-main-city-in-corner 属性可以控制是否在左上角显示主城区。

查看代码

自定义颜色范围

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

查看代码

隐藏标签

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

查看代码

隐藏图例

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

查看代码

自定义图例位置

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

查看代码

鼠标缩放和拖拽

通过 roam 属性可以控制地图是否支持鼠标缩放和拖拽。

启用缩放和拖拽

设置roam=true, 启用缩放和拖拽

查看代码

只允许缩放

设置roam=scale, 仅缩放

查看代码

只允许拖拽

设置roam=move, 仅拖拽

查看代码

特殊标注

通过 special-labels 属性可以添加特殊标注区域。

查看代码

自定义样式

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

查看代码

默认GeoJSON数据

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

主地图数据

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

主城区地图数据(当 show-main-city-in-corner 为 true 时)

  1. 优先从本地文件 src/assets/geo/chongqing-main.json 加载(如果存在)
  2. 如果本地文件不存在,从完整地图中筛选出主城区数据
  3. 如果筛选失败,从阿里云API加载完整地图后筛选

主城区包括九区:渝北区、江北区、北碚区、沙坪坝区、渝中区、南岸区、九龙坡区、大渡口区、巴南区

注意:两江新区在阿里云地图数据中可能不存在,因此使用渝北区和江北区替代。

使用本地GeoJSON文件

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

查看代码

本地GeoJSON文件

如果需要使用本地GeoJSON文件,可以:

  1. 阿里云DataV 下载重庆地图数据
  2. 将文件保存为 src/assets/geo/chongqing.json
  3. 组件会自动优先加载本地文件

API

Props

参数说明类型可选值默认值
data地图数据数组ChartMapCqDataItem[][]
geoJson地图GeoJSON数据anyundefined
mapName地图名称(用于注册echarts地图)string'chongqing'
showMainCityInCorner是否显示主城区在左上角booleantrue
mainCityNames主城区区域名称数组string[]['渝中区', '大渡口区', ...]
ranges颜色范围配置ChartMapCqRange[]undefined
defaultRanges是否使用默认颜色范围(序时进度)booleantrue
showLabel是否显示标签booleantrue
labelStyle标签样式LabelStyle{ color: '#ffffff', fontSize: 12, 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
specialLabels特殊标注区域配置SpecialLabel[][]
roam是否开启鼠标缩放和平移漫游boolean | 'scale' | 'move'true / false / 'scale' / 'move'false

ChartMapCqDataItem

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

ChartMapCqRange

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

LabelStyle

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

AreaStyle

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

Emphasis

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

SpecialLabel

参数说明类型可选值默认值
name标注名称string
position标注位置坐标[number, number]
icon标注图标(可选)string
label标注标签文本(可选)string

注意事项

  1. 地图数据:使用本组件需要提供重庆地图的GeoJSON数据。可以通过以下方式获取:

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

  3. 主城区配置:默认主城区包括9个区域(渝北区、江北区、北碚区、沙坪坝区、渝中区、南岸区、九龙坡区、大渡口区、巴南区),可以通过 mainCityNames 属性自定义。注意:两江新区在阿里云地图数据中可能不存在,因此使用渝北区和江北区替代。

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