地图折线标记物
配置项如下
/**
此版本通过设置geoindex && seriesIndex: [1] 属性来实现geo和map共存,来达到hover散点和区域显示tooltip的效果
默认情况下,map series 会自己生成内部专用的 geo 组件。但是也可以用这个 geoIndex 指定一个 geo 组件。这样的话,map 和 其他 series(例如散点图)就可以共享一个 geo 组件了。并且,geo 组件的颜色也可以被这个 map series 控制,从而用 visualMap 来更改。
当设定了 geoIndex 后,series-map.map 属性,以及 series-map.itemStyle 等样式配置不再起作用,而是采用 geo 中的相应属性。
http://echarts.baidu.com/option.html#series-map.geoIndex
并且加了pin气泡图标以示数值大小
*/
var uploadedDataURL = "/asset/get/s/data-1604987052721-RrDEffHjT.json";
var powerData = [{
name: '阎家梁风场',
symbol: 'circle',
coords: [[114.18, 40.45], [114.58, 40.55],[115.48, 40.55]],
value: [20],
}]
myChart.showLoading();
$.getJSON(uploadedDataURL, function(geoJson) {
var data = geoJson.features.map((feature) => {
// return 0
return {
name: feature.properties.name,
id: feature.id,
value: 0,
};
});
echarts.registerMap('shanxi', geoJson);
myChart.hideLoading();
let option = {
title: {
show: false,
},
grid: {
left: 10,
top: 20,
right: 10,
bottom: 30
},
geo: {
geoIndex: 1,
map: 'shanxi',
label: {
show: false
},
zoom: 1.2,
animation: false
},
series: [{
name: 'main',
z: 2,
type: 'map',
map: 'shanxi',
mapType: "shanxi",
zoom: 1.2,
label: {
show: true,
formatter(params) {
return `○ ${params.name}`;
},
textStyle: {
color: '#fff',
fontSize: 14,
fontFamily: 'MicrosoftYaHei',
backgroundColor: 'transparent',
},
},
itemStyle: {
color: '#004790',
borderWidth: 1,
borderColor: '#54ADFF',
areaColor: '#004790',
},
emphasis: {
label: {
show: true,
color: '#fff',
},
itemStyle: {
color: '#17BBFF',
borderColor: '#54ADFF',
areaColor: '#17BBFF'
},
},
data,
},
{
// 折线
type: 'lines',
coordinateSystem: 'geo',
symbol: 'circle',
polyline: true,
symbolSize: [14, 0],
z: 5,
lineStyle: {
type: 'solid',
opacity: 1,
color: 'red',
curveness: 0
},
label: {
show: true,
position: 'end',
formatter: (params) => {
// return `{a|${params.data.names}}`
return params.data.name
},
},
data: powerData
},
{
// 文字
type: 'lines',
coordinateSystem: 'geo',
symbol: 'circle',
symbolSize: [14, 0],
z: 5,
lineStyle: {
type: 'solid',
opacity: 0,
color: 'red',
curveness: 0
},
label: {
show: true,
padding: [0, 0, 15, 0],
position: 'end',
formatter: (params) => {
// return `{a|${params.data.names}}`
return params.data.name
},
},
data: powerData
},
{
// 标注点
type: 'lines',
coordinateSystem: 'geo',
symbol: 'circle',
symbolSize: [14, 0],
z: 5,
lineStyle: {
type: 'solid',
opacity: 1,
color: 'red',
curveness: 0
},
data: powerData
},
],
}
myChart.setOption(option);
});