Vue使用Echarts地图显示不全
对官网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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
估计是没有注册地图文件,地图文件在
echarts/map
下面,有 json 和 js 格式的,引入并且注册,以世界图为例:你没有地图文件吧