array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 地图下钻+标记点 - 爱码网
lepanyou

首先老规矩,上代码

    drawMap() {
      if (
        this.myChart != null &&
        this.myChart != "" &&
        this.myChart != undefined
      ) {
        this.myChart.dispose();
      }
      this.$nextTick(() => {
        let self = this;
        this.myChart = echarts.init(document.getElementById("mapTest"));
        // HuaiAn
        // let geoJson = "http://localhost:8080/static/mapHuaiAn.geoJson";
        // XiaMen
        // let geoJson = "http://localhost:8080/static/mapXiaMen.geoJson";
        // DrawMap
        // let geoJson = "http://localhost:8080/static/drawMap.geoJson";
        // let geoJson =
        //   "https://geo.datav.aliyun.com/areas_v3/bound/350200_full.json";
        //   "https://geo.datav.aliyun.com/areas_v3/bound/geojson?code=350200_full";

        // Origin
        let xiamen = "http://localhost:8080/static/mapXiaMen.geoJson";
        // Test [BUG]
        // let xiamen = "http://localhost:8080/static/mapXiaMenTest.geoJson";
        let haicang = "http://localhost:8080/static/HaiCang.geoJson";
        let huli = "http://localhost:8080/static/HuLi.geoJson";
        let jimei = "http://localhost:8080/static/JiMei.geoJson";
        let siming = "http://localhost:8080/static/SiMing.geoJson";
        let tongan = "http://localhost:8080/static/TongAn.geoJson";
        let xiangan = "http://localhost:8080/static/XiangAn.geoJson";

        var mapname = xiamen;
        var mapJson = [
          {
            name: "海沧区",
            json: haicang,
          },
          {
            name: "湖里区",
            json: huli,
          },
          {
            name: "集美区",
            json: jimei,
          },
          {
            name: "思明区",
            json: siming,
          },
          {
            name: "同安区",
            json: tongan,
          },
          {
            name: "翔安区",
            json: xiangan,
          },
        ];

        let mapDataOrigin = [
          {
            name: "同安区",
            value: [118.14422607421875, 24.76927845059527, 29999],
          }
        ];
        let mapData = mapDataOrigin;
        /**
此版本通过设置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 中的相应属性。

并且加了pin气泡图标以示数值大小
*/

        this.myChart.showLoading();

        this.myChart.on("click", function (e) {
          //   console.log(e);
          var chooseName = mapJson.filter((item) => {
            return item.name == e.name;
          });
          console.log("chooseName", chooseName[0].name);
          mapname = chooseName[0].json;

          //   console.log(mapname, "选择地图");

          mapData = [];
          $(\'<div class="back">返回市级</div>\').appendTo($("#mapTest"));

          $(".back").css({
            position: "absolute",
            left: "17px",
            top: "25px",
            color: "rgb(222,222,222)",
            "font-size": "15px",
            cursor: "pointer",
            "z-index": "100",
          });
          $(".back").click(function () {
            mapname = xiamen;
            mapData = mapDataOrigin;
            $(".back").css({
              position: "absolute",
              left: "17px",
              top: "-25px",
              color: "rgb(222,222,222)",
              "font-size": "15px",
              cursor: "pointer",
              "z-index": "100",
            });

            mapInit();
          });
          // Everytime after click, it needs to repaint.
          mapInit();
        });
        setTimeout(function () {
          mapInit();
        }, 1000);
        function mapInit() {
          // geoJson --- map Location
          // res --- map Information
          // After everytime click, the mapname changes and also res.
          // $.get(geoJson, (res) => {
          //   echarts.registerMap("xiamen", res);

          self.get(mapname).then((res) => {
            echarts.registerMap("xiamen", res);
            // console.log("我来了mapname", mapname);
            // console.log("new res", res);
            self.myChart.hideLoading();
            let option = {
              backgroundColor: "#020933",
              title: {
                top: 20,
                text: "“困难人数” - 厦门市",
                subtext: "",
                x: "center",
                textStyle: {
                  color: "#2ab8ff",
                },
              },
              visualMap: {
                min: 0,
                max: 1000000,
                right: 100,
                seriesIndex: 1,
                type: "piecewise",
                bottom: 100,
                textStyle: {
                  color: "#FFF",
                },
                splitList: [
                  {
                    gt: 50000,
                    color: "#F5222D",
                    label: "困难人数大于5万人",
                  }, //大于5万人
                  {
                    gte: 30000,
                    lte: 50000,
                    color: "#FA541C ",
                    label: "困难人数3-5万人",
                  }, //3-5万人
                  {
                    gte: 10000,
                    lte: 30000,
                    color: "#FA8C16",
                    label: "困难人数1-3万人",
                  }, //1-3万人
                  {
                    lte: 10000,
                    color: "#fbe1d6",
                    label: "困难人数小于1万人",
                  },
                ],
              },
              geo: {
                map: "xiamen",
                aspectScale: 0.75, //长宽比
                zoom: 1.1,
                roam: false,
                itemStyle: {
                  areaColor: "#013C62",
                  shadowColor: "#182f68",
                  shadowOffsetX: 0,
                  shadowOffsetY: 25,
                },
              },
              emphasis: {
                itemStyle: {
                  areaColor: "#2AB8FF",
                  borderWidth: 0,
                  color: "green",
                  label: {
                    show: false,
                  },
                },
                label: {
                  color: "#fff",
                },
                scale: true,
              },
              series: [
                {
                  type: "map",
                  roam: true,
                  label: {
                    show: true,
                    color: "#fff",
                  },
                  itemStyle: {
                    borderColor: "#2ab8ff",
                    borderWidth: 1.5,
                    // mapArea Color
                    areaColor: "#12235c",
                  },
                  zoom: 1.1,
                  roam: false,
                  map: "xiamen", // registerMap need to be same
                },
                {
                  type: "effectScatter",
                  coordinateSystem: "geo",
                  showEffectOn: "render",
                  rippleEffect: {
                    period: 15,
                    scale: 4,
                    brushType: "fill",
                  },
                  itemStyle: {
                    textStyle: {
                      color: "yellow",
                    },
                    shadowBlur: 10,
                    shadowColor: "#333",
                  },
                  data: mapData,
                },
              ],
            };
            self.myChart.setOption(option);
          });
        }
      });
    },
View Code

参考网址——Make A Pie - “困难人数” - 杭州市

参考网址里的楼主用的下钻方法挺好的,mapInit函数,每次点击选择地图Json再初始化地图。包括数据点,市级和区级切换的时候涉及到装载和清空的两种情况。

我这个版本因为echarts5.1.2的缘故,改了一些Option选项,(不然每次一运行黄色的警告,难受)

加点用的这个网站坐标——geojson.io

如果直接把加点的坐标json复制过来,图会变得很奇怪,所以就用数组用的时候装进地图里。

效果如图

分类:

技术点:

相关文章: