// 根据heightEcharts生成图标
createPointByHeightEcharts (point, layer, data){
// 創建div来实现echarts容器
var div = document.createElement("div");
var w = 360;
var h = 360;
div.id = "est"+Math.random();
div.style=\'width:\'+w+\'px;height:\'+h+\'px;position:absolute;left:-1000px;top:0;z-index:1000;\'
document.body.appendChild(div);
var echarts = HighCharts.chart(div.id, {
chart: {
type: \'pie\',
options3d: {
enabled: true,
alpha: 65
},
backgroundColor:"#00000000",
animation: false
},
title: {
text: \'\'
},
colors: ["#6699cd","#ae68d2"],
plotOptions: {
pie: {
innerSize: 0,
depth: 80
}
},
series: [{
animation: false,
dataLabels: {
enabled: false
},
name: \'货物金额\',
data: [
[\'磷\', data.tp*1],
[\'氮\', data.tn*1],
]
}]
})
var svgXml = echarts.container.innerHTML;
var image = new Image();
image.src = \'data:image/svg+xml;base64,\' + window.btoa(unescape(encodeURIComponent(svgXml))); //给图片对象写入base64编码的svg流
echarts.destroy();
echarts = null;
div.remove();
div = null;
setTimeout(()=>{
var canvas = document.createElement(\'canvas\'); //准备空画布
canvas.width = w;
canvas.height = h;
var context = canvas.getContext(\'2d\'); //取得画布的2d绘图上下文
context.drawImage(image, 0, 0);
let base64 = canvas.toDataURL(\'image/png\'); //将画布内的信息导出为png图片数据
var symbol = new window.esri.symbol.PictureMarkerSymbol(base64,36,36);
var graphic = new window.esri.Graphic(point,symbol,{ id: "bj" });
layer.add(graphic);
canvas = null;
image.remove();
image = null;
},100)
},
// 顺便补充一下 echarts导出成图片的
// 根据echarts图生成点位
createPointByEcharts (point,layer){
// 創建div来实现echarts容器
var div = document.createElement("div");
div.style=\'width:36px;height:36px;position:absolute;left:100px;z-index:1000;top:50px;\'
document.body.appendChild(div);
var option = {
tooltip: {
trigger: \'item\'
},
series: [
{
name: \'访问来源\',
type: \'pie\',
radius: [\'0%\', \'100%\'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: \'#fff\',
borderWidth: 2
},
label: {
show: false,
position: \'center\'
},
emphasis: {
label: {
show: true,
fontSize: \'40\',
fontWeight: \'bold\'
}
},
labelLine: {
show: false
},
data: [
{value: 1048, name: \'搜索引擎\'},
{value: 735, name: \'直接访问\'},
{value: 580, name: \'邮件营销\'},
{value: 484, name: \'联盟广告\'},
{value: 300, name: \'视频广告\'}
],
animation: false,
}
]
};
this.echarts = this.$echarts.init(div);
this.echarts.setOption(option);
setTimeout(()=>{
var images = this.echarts.getRenderedCanvas().toDataURL();
var symbol = new window.esri.symbol.PictureMarkerSymbol(images,36,36);
var graphic = new window.esri.Graphic(point,symbol,{ id: "bj" });
layer.add(graphic);
},1000)
},