echarts 散点地图

效果图

在这里插入图片描述

数据格式转换

在这里插入图片描述

var convertData1 = function(data,index) {
console.log('daft',data)
var res = [];
for (var i = 0; i < data.length; i++) {
	var geoCoordCar = data[i];
	if (geoCoordCar) {
	res.push({
		name: geoCoordCar.pnum,
		value: [geoCoordCar.lon,geoCoordCar.lat],
	});
	}
}
console.log('resgeoCoordCar11',res)
return res;
};
页面渲染

效果可参考echarts 在线链接:https://gallery.echartsjs.com/editor.html?c=xnmZ5X4gCz

    drawMap() {
      var convertData = function(data, index) {
        var res = [];
        for (var i = 0; i < index.length; i++) {
          var geoCoord = data[index[i]];
          if (geoCoord) {
            res.push({
              name: index[i],
              value: geoCoord.concat(index[i])
            });
          }
        }
        return res;
      };
      var convertData1 = function(data,index) {
          var res = [];
          for (var i = 0; i < data.length; i++) {
              var geoCoordCar = data[i];
              if (geoCoordCar) {
                  res.push({
                      carId: geoCoordCar.carid,
                      name: geoCoordCar.pnum,
                      value: [geoCoordCar.lon,geoCoordCar.lat],
                  });
              }
          }
          return res;
      };

      let chart = document.getElementById("myChart");
      let myChart = null;
      if ($echarts.getInstanceByDom(chart)) {
        myChart = $echarts.getInstanceByDom(chart);
      } else {
        myChart = $echarts.init(chart);
      }

      var hStep = 300 / (data.length - 1);
      var busLines = [].concat.apply(
        [],
        data.map(function(busLine, idx) {
          var prevPt;
          var points = [];
          for (var i = 0; i < busLine.length; i += 2) {
            var pt = [busLine[i], busLine[i + 1]];
            if (i > 0) {
              pt = [prevPt[0] + pt[0], prevPt[1] + pt[1]];
            }
            prevPt = pt;
            points.push([pt[0] / 1e4, pt[1] / 1e4]);
          }
          return {
            coords: points,
            lineStyle: {
              normal: {
                color: $echarts.color.modifyHSL(
                  "#5A94DF",
                  Math.round(hStep * idx)
                )
              }
            }
          };
        })
      );
      let option;
      if (this.echarts.indexOf(document.getElementById("myChart")) == -1) {
        this.echarts.push(document.getElementById("myChart"));
      }
      myChart.setOption(
        (option = {
          bmap: {
            center: [116.46, 39.92],
            zoom: 12,
            roam: true,
            mapStyle: {
              styleJson: [], //隐藏地图上的poi
              style: "midnight" //设置地图风格为高端黑
            }
          },
          geo: {
            map: "china",
            itemStyle: {
              normal: {
                areaColor: "#323c48",
                borderColor: "#111"
              },
              emphasis: {
                areaColor: "#2a333d"
              }
            }
          },
          series: [
            {
              name: "已投运",
              type: "scatter",
              coordinateSystem: "bmap",
              data: convertData(this.newData3, this.ids3),
              symbol: "circle",
              symbolSize: 20,
              symbolOffset: ["-20px", "20px"],
              label: {
                normal: {
                  show: false
                },
                emphasis: {
                  show: false
                }
              },
              itemStyle: {
                normal: {
                  color: "#F5A623"
                },
                emphasis: {
                  borderColor: "#fff",
                  borderWidth: 1
                }
              }
            },
            {
              name: "规划中",
              type: "scatter",
              coordinateSystem: "bmap",
              data: convertData(this.newData1, this.ids1),
              symbol: "circle",
              symbolSize: 20,
              symbolOffset: ["10px", "-15px"],
              label: {
                normal: {
                  show: false
                },
                emphasis: {
                  show: false
                }
              },
              itemStyle: {
                normal: {
                  color: "#E3DDC7 "
                },
                emphasis: {
                  borderColor: "#fff",
                  borderWidth: 1
                }
              }
            },
            {
              name: "建设中",
              type: "scatter",
              coordinateSystem: "bmap",
              data: convertData(this.newData2, this.ids2),
              symbol: "circle",
              symbolSize: 20,
              symbolOffset: ["-20px", "-10px"],
              label: {
                normal: {
                  show: false
                },
                emphasis: {
                  show: false
                }
              },
              itemStyle: {
                normal: {
                  color: "#50E3C2 "
                },
                emphasis: {
                  borderColor: "#fff",
                  borderWidth: 1
                }
              }
            },
            {
                  name: 'carInfo',
                  type: 'scatter',
                  coordinateSystem: 'bmap',
                  data: convertData1(this.trajectoryList),
                  symbol:'image://data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7',
              
                  symbolSize:[20,20],
                  showEffectOn: 'render',
                  rippleEffect: {
                      brushType: 'stroke'
                  },
                  hoverAnimation: true,
                  label: {
                      normal: {
                          position: [10, 10],
                          formatter: '{b}',
                          position: 'right',
                          show: true
                      }
                  },
                 
                  zlevel: 8
              },
            
          ]
        })
      );
      let that = this;
      myChart.on("click", function(params) {
        if(params.seriesName == 'carInfo'){
          let caridPara = {
            carId: params.data.carId
          };
          that.sigleCarInfo(caridPara);
        }else{
          let data = {
            chargingStationId: params.data.name
          };
          that.chargingstationnDetails(data);
        }
        
      });
    },
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值