Echarts geo地图 visualMap 自定义 分段

这篇博客介绍了两个JavaScript函数,用于数值处理和分段函数的创建。`toCeil`函数用于将数值四舍五入到指定的小数位数,而`getPieces`函数根据最大值、分段数量和是否显示百分比创建分段标签,解决了精度问题并确保等分。
摘要由CSDN通过智能技术生成
/*
	value: 需要处理的数值
	num: 保留几位小数
*/
export function toCeil (value, num) {
  let val = Math.ceil(value * Math.pow(10, num)) / Math.pow(10, num) + ''
  if (num > 0) {
    const intp = val.split('.')[0]
    const decp = val.split('.')[1] || ''
    if (decp.length < num) {
      val = `${intp}.${decp.padEnd(num, '0')}`
    }
  }
  return +val
}
/*
	max: 分段最大值
	splitNum: 分为几段
	isPercentage: 是否分段label中显示百分号
	注:此处为防止精度问题,引入了Decimal库
*/
export function getPieces (max = 0, splitNum = 5, isPercentage = false) {
  const unit = isPercentage ? '%' : ''
  let interval = max / splitNum
  if (interval !== toCeil(interval, 2)) {
    // 除不尽保留2为小数,保持进1
    interval = toCeil(interval, 2)
    max = toCeil(interval * splitNum, 2)
  }
  const pieces = [
    {
      max: interval,
      min: 0,
      label: `0 - ${interval}${unit}`
    }
  ]
  let i = 1
  while (i < splitNum) {
    const max = +(new Decimal(pieces[i - 1].max).add(interval))
    const min = +(new Decimal(pieces[i - 1].max))
    pieces[i] = {
      max,
      min,
      label: `${min}${unit} - ${max}${unit}`
    }
    i++
  }
  return pieces
}
ECharts是一款强大的数据可视化库,可以创建各种图表,包括地图。要在ECharts地图上设置边框和颜色,你需要使用`visualMap`和一些自定义选项。以下是基本步骤: 1. **添加地图**: 首先,引入地图数据和ECharts实例,然后配置地图: ```javascript var mapData = ...; // 加载地图数据,例如echarts的地理编码服务返回的数据 var myChart = echarts.init(document.getElementById('main')); myChart.setOption({ geo: { name: '中国', data: mapData, // 其他地图配置... } }); ``` 2. **设置视觉映射**: ECharts的视觉映射允许你动态调整颜色范围,你可以创建一个视觉映射来改变边框的颜色。设置`visualRange`和`visualMap`: ```javascript visualMap: { show: true, // 显示视觉映射工具 pieceswise: [ // 分段表示,可以根据需要调整 {min: 0, max: 50, color: '#FF0000'}, // 边框颜色 {min: 51, max: 100, color: '#00FF00'} // 另一段颜色 ], // 其他视觉映射选项... }, ``` 3. **边框样式**: ECharts本身没有直接提供地图边框线的设置,但你可以通过修改图形元素的位置和大小来模拟边框。一种常见的做法是在地图外部画一个等大的矩形,覆盖地图边界: ```javascript series: [ { type: 'map', // 省略其他配置... itemStyle: { normal: { // 设置地图填充色 color: 'yourMapColor' }, emphasis: { // 强调样式 shadowBlur: 0, // 关闭阴影 outlineColor: '#FF0000', // 边框颜色 outlineWidth: 1 // 边框宽度 } } }, { type: 'rectangle', position: [0, 0], // 地图左上角坐标 width: yourMapWidth, // 地图宽度 height: yourMapHeight, // 地图高度 shape: 'round', // 圆角边框 fill: 'transparent', stroke: '#FF0000', // 边框颜色 lineWidth: 1 // 边框宽度 } ] ``` 记得替换上述代码中的`yourMapData`、`yourMapColor`、`yourMapWidth`和`yourMapHeight`为你实际的地图数据和尺寸。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值