diff --git a/src/views/dataV/pageFive/tracemap copy.vue b/src/views/dataV/pageFive/tracemap copy.vue
new file mode 100644
index 0000000..635dfb9
--- /dev/null
+++ b/src/views/dataV/pageFive/tracemap copy.vue
@@ -0,0 +1,200 @@
+
+
+
+
+
diff --git a/src/views/dataV/pageFive/tracemap.vue b/src/views/dataV/pageFive/tracemap.vue
index 026ae98..91a8396 100644
--- a/src/views/dataV/pageFive/tracemap.vue
+++ b/src/views/dataV/pageFive/tracemap.vue
@@ -9,7 +9,74 @@ import chinaMap from './china.json';
import gdMap from './gd.json';
export default {
data() {
- return {};
+ return {
+ chinaGeoCoordMap: {
+ 黑龙江: [127.9688, 45.368],
+ 内蒙古: [110.3467, 41.4899],
+ 吉林: [125.8154, 44.2584],
+ 北京市: [116.4551, 40.2539],
+ 辽宁: [123.1238, 42.1216],
+ 河北: [114.4995, 38.1006],
+ 天津: [117.4219, 39.4189],
+ 山西: [112.3352, 37.9413],
+ 陕西: [109.1162, 34.2004],
+ 甘肃: [103.5901, 36.3043],
+ 宁夏: [106.3586, 38.1775],
+ 青海: [101.4038, 36.8207],
+ 新疆: [87.9236, 43.5883],
+ 西藏: [91.11, 29.97],
+ 四川: [103.9526, 30.7617],
+ 重庆: [108.384366, 30.439702],
+ 山东: [117.1582, 36.8701],
+ 河南: [113.4668, 34.6234],
+ 江苏: [118.8062, 31.9208],
+ 安徽: [117.29, 32.0581],
+ 湖北: [114.3896, 30.6628],
+ 浙江: [119.5313, 29.8773],
+ 福建: [119.4543, 25.9222],
+ 江西: [116.0046, 28.6633],
+ 湖南: [113.0823, 28.2568],
+ 贵州: [106.6992, 26.7682],
+ 云南: [102.9199, 25.4663],
+ 广东: [113.12244, 23.009505],
+ 广西: [108.479, 23.1152],
+ 海南: [110.3893, 19.8516],
+ 上海: [121.4648, 31.2891],
+ },
+ chinaDatas: [
+ [{ name: '黑龙江', value: 500 }],
+ [{ name: '内蒙古', value: 300 }],
+ [{ name: '北京市', value: 200 }],
+ [{ name: '吉林', value: 300 }],
+ [{ name: '辽宁', value: 500 }],
+ [{ name: '河北', value: 600 }],
+ [{ name: '天津', value: 500 }],
+ [{ name: '山西', value: 700 }],
+ [{ name: '陕西', value: 600 }],
+ [{ name: '甘肃', value: 500 }],
+ [{ name: '宁夏', value: 500 }],
+ [{ name: '青海', value: 700 }],
+ [{ name: '新疆', value: 300 }],
+ [{ name: '西藏', value: 300 }],
+ [{ name: '四川', value: 1000 }],
+ [{ name: '重庆', value: 900 }],
+ [{ name: '广东', value: 300 }],
+ [{ name: '山东', value: 600 }],
+ [{ name: '河南', value: 1800 }],
+ [{ name: '江苏', value: 1000 }],
+ [{ name: '安徽', value: 900 }],
+ [{ name: '湖北', value: 3200 }],
+ [{ name: '浙江', value: 1600 }],
+ [{ name: '福建', value: 900 }],
+ [{ name: '湖南', value: 2400 }],
+ [{ name: '贵州', value: 800 }],
+ [{ name: '广西', value: 700 }],
+ [{ name: '海南', value: 700 }],
+ [{ name: '上海', value: 170 }],
+ [{ name: '江西', value: 170 }],
+ [{ name: '云南', value: 500 }],
+ ],
+ };
},
props: {
baseId: Number,
@@ -26,7 +93,135 @@ export default {
},
},
methods: {
+ convertData(data) {
+ console.info('convertData',data)
+ var res = [];
+ for (var i = 0; i < data.length; i++) {
+ var dataItem = data[i];
+ var fromCoord = [114.3896, 30.6628];
+ var toCoord = this.chinaGeoCoordMap[dataItem[0].name];
+ if (fromCoord && toCoord) {
+ res.push([
+ {
+ coord: fromCoord,
+ value: dataItem[0].value,
+ },
+ {
+ coord: toCoord,
+ },
+ ]);
+ }
+ }
+ return res;
+ },
+ getSeries() {
+ let list = [];
+ let _this=this;
+ [['湖北', _this.chinaDatas]].forEach(function (item, i) {
+ console.log('getSeries',_this);
+ list.push(
+ {
+ type: 'lines',
+ zlevel: 1,
+ effect: {
+ show: true,
+ period: 4, //箭头指向速度,值越小速度越快
+ trailLength: 0.02, //特效尾迹长度[0,1]值越大,尾迹越长重
+ symbol: 'arrow', //箭头图标
+ symbolSize: 5, //图标大小
+ },
+ lineStyle: {
+ normal: {
+ width: 1, //尾迹线条宽度
+ opacity: 1, //尾迹线条透明度
+ curveness: 0.3, //尾迹线条曲直度
+ },
+ },
+ data: _this.convertData(item[1]),
+ },
+ {
+ type: 'effectScatter',
+ coordinateSystem: 'geo',
+ zlevel: 2,
+ rippleEffect: {
+ //涟漪特效
+ period: 4, //动画时间,值越小速度越快
+ brushType: 'stroke', //波纹绘制方式 stroke, fill
+ scale: 4, //波纹圆环最大限制,值越大波纹越大
+ },
+ label: {
+ normal: {
+ show: true,
+ position: 'right', //显示位置
+ offset: [5, 0], //偏移设置
+ formatter: function (params) {
+ //圆环显示文字
+ return params.data.name;
+ },
+ fontSize: 10,
+ },
+ emphasis: {
+ show: true,
+ },
+ },
+ symbol: 'circle',
+ symbolSize: function (val) {
+ return 3 + (val[2] / 100) * 1; //圆环大小
+ },
+ itemStyle: {
+ normal: {
+ show: false,
+ color: '#FFA54F',
+ },
+ },
+ data: item[1].map(function (dataItem) {
+ return {
+ name: dataItem[0].name,
+ value: _this.chinaGeoCoordMap[dataItem[0].name].concat([dataItem[0].value]),
+ };
+ }),
+ },
+ //被攻击点
+ {
+ type: 'scatter',
+ coordinateSystem: 'geo',
+ zlevel: 2,
+ rippleEffect: {
+ period: 4,
+ brushType: 'stroke',
+ scale: 4,
+ },
+ label: {
+ normal: {
+ show: true,
+ position: 'right',
+ //offset:[5, 0],
+ color: '#0f0',
+ formatter: '{b}',
+ textStyle: {
+ color: '#0f0',
+ },
+ },
+ emphasis: {
+ show: true,
+ color: '#FFA54F',
+ },
+ },
+ symbol: 'pin',
+ symbolSize: 50,
+ data: [
+ {
+ name: item[0],
+ value: _this.chinaGeoCoordMap[item[0]].concat([10]),
+ },
+ ],
+ }
+ );
+ });
+ return list;
+ },
async loadMapChart() {
+ let _this=this;
var option = {
title: {
text: '地图统计图表',
@@ -45,70 +240,58 @@ export default {
lineHeight: '40',
},
},
- toolbox: {},
+ tooltip: {
+ trigger: 'item',
+ backgroundColor: 'rgba(166, 200, 76, 0.82)',
+ borderColor: '#FFFFCC',
+ showDelay: 0,
+ hideDelay: 0,
+ enterable: true,
+ transitionDuration: 0,
+ extraCssText: 'z-index:100',
+ formatter: function (params, ticket, callback) {
+ //根据业务自己拓展要显示的内容
+ var res = '';
+ var name = params.name;
+ var value = params.value[params.seriesIndex + 1];
+ res = "" + name + '
数据:' + value;
+ return res;
+ },
+ },
+ backgroundColor: 'transparent',
visualMap: {
- min: 0,
- max: 1000,
- show: false,
- type: 'piecewise',
- pieces: [
- { gt: 1500 }, // (1500, Infinity]
- { gt: 900, lte: 1500 }, // (900, 1500]
- { gt: 310, lte: 1000 }, // (310, 1000]
- { gt: 200, lte: 300 }, // (200, 300]
- { gt: 0, lte: 200, color: '#2b7' },
- ],
+ //图例值控制
+ min: 1,
+ max: 4000,
+ calculable: true,
+ show: true,
+ color: ['#f44336', '#fc9700', '#ffde00', '#ffde00', '#00eaff'],
textStyle: {
- color: '#ffffff',
+ color: '#fff',
},
},
geo: {
- map: 'guangdong',
- roam: true,
- show: true,
- zoom: 1,
- top: 100,
- select: {
- disabled: false,
- },
- itemStyle: {
- borderColor: '#fff',
- borderWidth: 2,
- areaColor: '#243c48',
- },
- label:{
- show:true,
- fontSize: 10, // 字号
- color: '#fff', // 名称颜色
- },
- regions: [
- {
- name: '深圳市', // 必须与地图数据中的名称完全一致
- itemStyle: {
- areaColor: '#41c0c7', // 区域填充色
- },
- },
- ],
- },
- tooltip: {
- show: true,
- formatter: function (param) {
- return `在${param.data.name}查询了${param.data.value[2]}次`;
- },
- },
- series: [
- {
- type: 'scatter',
- symbol:
- 'image://data:image/png;base64,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',
- symbolSize: '28',
- coordinateSystem: 'geo',
- data: null,
- label: {
+ map: 'china',
+ zoom: 1.2,
+ top:250,
+ label: {
+ emphasis: {
show: false,
},
},
- ],
+ roam: true, //是否允许缩放
+ itemStyle: {
+ normal: {
+ color: '#243c48', //地图背景色
+ borderColor: '#005A5C', //省市边界线00fcff 516a89
+ borderWidth: 1,
+ },
+ emphasis: {
+ color: 'rgba(37, 43, 61, .5)', //悬浮背景
+ },
+ },
+ },
+ series: _this.getSeries(),
};
const { rows } = await selectRecord(this.baseId);
//数据
@@ -123,7 +306,7 @@ export default {
});
option.title.subtext = `我们的产品走过了${rows.length}个城市,被客户查询了${i}次`;
let myChart = this.$echarts.init(this.$refs.chart);
- this.$echarts.registerMap('guangdong', { geoJSON: gdMap });
+ this.$echarts.registerMap('china', { geoJSON: chinaMap });
myChart.setOption(option);
window.onresize = function () {
myChart.resize();