Vue使用Echarts地图显示不全

发布于 2022-09-07 03:33:04 字数 2437 浏览 12 评论 0

对官网demo精简,结果地图只显示南海诸岛和每个点。

clipboard.png

官网Demo

Vue代码如下:

drawMap () {
  let data = [
    {name: '海门', value: 9},
    {name: '鄂尔多斯', value: 12},
    {name: '招远', value: 12},
    {name: '舟山', value: 12},
    {name: '齐齐哈尔', value: 14},
    {name: '盐城', value: 15},
    {name: '赤峰', value: 16},
    {name: '青岛', value: 18},
    {name: '乳山', value: 18},
    {name: '金昌', value: 19},
    {name: '泉州', value: 21}
  ]
  let geoCoordMap = {
    '海门': [121.15, 31.89],
    '鄂尔多斯': [109.781327, 39.608266],
    '招远': [120.38, 37.35],
    '舟山': [122.207216, 29.985295],
    '齐齐哈尔': [123.97, 47.33],
    '盐城': [120.13, 33.38],
    '赤峰': [118.87, 42.28],
    '青岛': [120.33, 36.07],
    '乳山': [121.52, 36.89],
    '金昌': [102.188043, 38.520089],
    '泉州': [118.58, 24.93]
  }
  let convertData = function (data) {
    var res = []
    for (var i = 0; i < data.length; i++) {
      var geoCoord = geoCoordMap[data[i].name]
      if (geoCoord) {
        res.push({
          name: data[i].name,
          value: geoCoord.concat(data[i].value)
        })
      }
    }
    return res
  }
  let option = {
    tooltip: {
      trigger: 'item',
      formatter: function (params) {
        return params.name + ' : ' + params.value[2]
      }
    },
    geo: {
      map: 'china',
      roam: true,
      label: {
        emphasis: {
          show: false
        }
      },
      itemStyle: {
        normal: {
          areaColor: '#a19cef',
          borderColor: '#c4c2f5'
        },
        emphasis: {
          areaColor: '#8c86f7'
        }
      }
    },
    series: [
      {
        name: 'house',
        type: 'scatter',
        coordinateSystem: 'geo',
        data: convertData(data),
        symbolSize: 20,
        label: {
          normal: {
            show: false
          },
          emphasis: {
            show: false
          }
        },
        itemStyle: {
          normal: {
            color: '#f1f425'
          },
          emphasis: {
            borderColor: '#fff',
            borderWidth: 1
          }
        }
      }
    ]

  }
  this.chartMap = echarts.init(document.getElementById('chartMap'))
  this.chartMap.setOption(option)
}

在mounted里调用 this.drawMap()

不懂问题出在哪里。用Echart3版本试了,一样的问题

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

能否归途做我良人 2022-09-14 03:33:04

估计是没有注册地图文件,地图文件在echarts/map下面,有 json 和 js 格式的,引入并且注册,以世界图为例:

import echarts from 'echarts'
import world from 'echarts/map/json/world.json'

echarts.registerMap('world', world)
念﹏祤嫣 2022-09-14 03:33:04

你没有地图文件吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文