From 8aa3edd56c279100c9053576f3e90fa55459fe77 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Mon, 16 Jan 2023 16:15:55 +0800
Subject: [PATCH] 修改

---
 public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js |  618 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 358 insertions(+), 260 deletions(-)

diff --git a/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js b/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
index 6594849..9a47933 100644
--- a/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
+++ b/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
@@ -32,6 +32,9 @@
   PopupTemplate, GraphicsLayer
 ) {
   return declare([GraphicsLayer], {
+
+    //聚合渲染data
+    userState: '设备',
     constructor: function (options) {
       /* options description:
         spatialReference: default 102100. A SpatialReference object using the wkid of that data.
@@ -70,12 +73,19 @@
       this.maxFlareCount = options.maxFlareCount || 8;
       this.displaySingleFlaresAtCount = options.displaySingleFlaresAtCount || 8;
       this.singleFlareTooltipProperty = options.singleFlareTooltipProperty || null;
-      var defaultTextSymbol = new TextSymbol()
+      var defaultTextSymbol = new TextSymbol()//聚合字体
         .setColor(new Color([255, 255, 255]))
-        .setAlign(Font.ALIGN_START)
-        .setFont(new Font("10pt").setWeight(Font.WEIGHT_BOLD).setFamily("calibri"))
+        // .setAlign(Font.ALIGN_START)//被否决
+        .setOffset(+100, +10)//偏量
+        // .setHaloSize(1)
+        .setFont(new Font("15pt").setWeight(Font.WEIGHT_BOLD).setFamily("calibri"))
+        .setSize("30")
+        // .setOffsetY(-30)
+        .setHorizontalAlignment("middle")
         .setVerticalAlignment("middle");
-      defaultTextSymbol.font.size = 30;
+      // defaultTextSymbol.font.size = 30;
+      // defaultTextSymbol.yoffset = 10;
+      // console.log(defaultTextSymbol,2123445453)
       this.textSymbol = options.textSymbol || defaultTextSymbol;
       this.flareShowMode = options.flareShowMode || "mouse";
 
@@ -195,13 +205,18 @@
       var mySelf = this;
       // console.log(und)
       if (und == '控制端') {//控制端弹窗关闭
-        parent[0].layer.close(indexControl);
-        parent[0].layer.close(+indexControl + 1);
-        // console.log('控制:', indexControl)
+        // parent[0].layer.close(indexControl);
+        // parent[0].layer.close(+indexControl + 1);
       }
-      // console.log('tucen:', mySelf.indexs)
 
-      if (eour == undefined) {
+      if (eour == undefined) {//判断是否是聚合状态
+        // if(this.userState == '设备'){
+        //   // console.log(this.userState)
+        // }else if(this.userState == '警情'){
+        //   // console.log(this.userState)
+        // }else if(this.userState == '业主'){
+        //   // console.log(this.userState)
+        // }
         var dataO = evt;
         var aa = evt.graphic.screenX;
         var bb = evt.graphic.screenX;
@@ -210,255 +225,313 @@
           nams: evt.graphic.attributes.deviceName,
           type: evt.graphic.attributes.jtype,
         }
-        // console.log(dataO);
-        // console.log(aa - bb);
         var cache = [];
         //解决重复JSON.stringify将循环结构转换为JSON。有几率出错,err:TypeError: Converting circular structure to JSON
-
-
-        // var setdata = JSON.stringify(evt.graphic.attributes
-
-        //   , function (key, value) {
-        //   if (typeof value === 'object' && value !== null) {
-        //     if (cache.indexOf(value) !== -1) {
-        //       // 移除
-        //       return;
-        //     }
-        //     // 收集所有的值
-        //     cache.push(value);
-        //   }
-        //   return value;
-        // }
-        // );
-        
+        //舍弃上面方法,原因是对象里面嵌入对象,造成不能转换成JSON,吧对象去掉就好,
         var as = evt.graphic.attributes;
+        var bs = {};
         for (let key in as) {
-          if (typeof as[key] == 'object') {
-            as = as[key].attributes;
+          if (typeof as[key] != 'object') {
+            bs[key] = as[key]
+            // as = as[key].attributes;
             // console.log('youduixang ')
-            break;
+            // break;
           }
         }
-        var setdata = JSON.stringify(as);
-        // console.log(setdata);
-        // var newkeys = Object.keys(evt.graphic.attributes);
-        // var newvalues = Object.values(evt.graphic.attributes);
-        // var str = "";
-        // newkeys.forEach(function (item,index) {
-        //   str += item
-        // })
-
-
-        // console.log(cache);
+        var setdata = JSON.stringify(bs);
         cache = null;
-        var fCard = (posi, setdata,winSize) => { // 弹窗函数
-          var that = this,
-            url = './popup/html/FlareClusterLayer_v3.html',
-            clickD = null,
-            clickG = null,
-            downs = null,
-            moves = null,
-            ups = null;
-          layui.use('layer', function () {
-            that.layuiLayer = layui.layer;
-            that.layuiLayer.config({
-              extend: 'myskin/FlareClusterLayer.css'
-            });
-            that.layuiLayer.close(that.layuiLayer.index);
-            // layer.alert('layer 新皮肤');
-          //   that.layuiLayer.open({
-          //     title: '',
-          //     type: 2,
-          //     shadeClose: false,
-          //     shade: false,
-          //     skin: 'demo-class',
-          //     // id: 'onelyOne',
-          //     maxmin: false, //开启最大化最小化按钮
-          //     area: ['200px', '75px'],
-          //     // area: 'auto',
-          //     offset: posi,
-          //     skin: 'flare',
-          //     closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
-          //     content: [url, 'no'],
-          //     resize: false,
-          //     scrollbar: false,
-          //     // tipsMore: true, //允许多个tipe
-          //     // content: num,
-          //     success: function (layero, index) {//成功后添加全局点击关闭
-          //       // console.log(evt.graphic.attributes);
-          //       $("#layui-layer-iframe" + index).contents().find("#input1").val(setdata);
-          //       // console.log(layero, index);
-          //       that.indexs = index;
+        if (this.userState == '设备') {
+          // console.log(this.userState)
+          var fCard = (posi, setdata, winSize) => { // 设备弹窗函数
+            var that = this,
+              url = './popup/html/FlareClusterLayer_v3.html',
+              clickD = null,
+              clickG = null,
+              downs = null,
+              moves = null,
+              ups = null;
 
-          //       var isclickD = true
-          //         , endx = null
-          //         , endy = null;
-          //       layero[0].style.position = 'absolute';
+            layui.use('layer', function () {
+              that.layuiLayer = layui.layer;
+              that.layuiLayer.config({
+                extend: 'myskin/FlareClusterLayer.css'
+              });
+              that.layuiLayer.close(that.layuiLayer.index);
+              //两个弹窗
+              // that.layuiLayer.open({
+              //   title: '',
+              //   type: 2,
+              //   shadeClose: false,
+              //   shade: false,
+              //   skin: 'demo-class',
+              //   // id: 'onelyOne',
+              //   maxmin: false, //开启最大化最小化按钮
+              //   area: ['200px', '70px'],
+              //   // area: 'auto',
+              //   offset: posi,
+              //   skin: 'flares',
+              //   closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
+              //   content: [url, 'no'],
+              //   resize: false,
+              //   scrollbar: false,
+              //   // tipsMore: true, //允许多个tipe
+              //   // content: num,
+              //   success: function (layero, index) {//成功后添加全局点击关闭
+              //     // console.log(evt.graphic.attributes);
+              //     $("#layui-layer-iframe" + index).contents().find("#input1").val(setdata);
+              //     // console.log(layero, index);
+              //     that.indexs = index;
 
-          //       downs = document.onmousedown = () => { //鼠标按下事件
-          //         // console.log('down');//start
-          //         // downs = document.onmousedown = null;
-          //         var mx = window.event.clientX//鼠标初始位置
-          //           , my = window.event.clientY
-          //           , cx = this.offset[1].replace("px", "")//初始位置
-          //           , cy = this.offset[0].replace("px", "");
+              //     var isclickD = true
+              //       , endx = null
+              //       , endy = null;
+              //     layero[0].style.position = 'absolute';
 
-          //         //判断鼠标是否在地图上
-          //         // console.log(mx,'+',my);
-          //         if (mx > 359 && mx < 1543 && my > 5 && my < 818) {
-          //           // console.log('on map')
-          //           if (endx != null && endy != null) {
-          //             cx = endx;
-          //             cy = endy;
-          //           }
-          //           moves = document.onmousemove = () => {//鼠标移动事件
-          //             // console.log('move');//move
-          //             // console.log(this.offset)
-          //             var ux = window.event.clientX//记录实时位置
-          //               , uy = window.event.clientY;
-          //             endx = +cx + (ux - mx)// 初始位置+(鼠标初始位置-实时位置)
-          //             endy = +cy + (uy - my);
-          //             layero[0].style.left = endx + 'px';
-          //             layero[0].style.top = endy + 'px';
-          //             // console.log(+cx, +cy,'初始位置');
-          //             // console.log(mx, my,'鼠标初始位置');
-          //             // console.log(ux, uy,'记录实时位置');
-          //             // console.log(ux, uy,'最后位置');
-          //             isclickD = false;
-          //             ups = document.onmouseup = () => {//鼠标抬起事件
-          //               // console.log('up');//end
-          //               // downs = document.onmousedown = null;
-          //               moves = document.onmousemove = null;
-          //               ups = document.onmouseup = null;
-          //               var timess = setTimeout(() => {
-          //                 clearTimeout(timess);
-          //                 timess = null;
-          //                 isclickD = true;
-          //               }, 1);
-          //             }
-          //           }
-          //         }
-          //       }
-          //       clickD = document.onclick = () => {
-          //         if (isclickD) {
-          //           parent[0].layer.close(index);
-          //           parent[0].layer.close(+index + 1);
-          //           // parent[0].layer.closeAll();
-          //           // console.log(111111111111)
-          //           clickD = document.onclick = null;
-          //         }
-          //       }
+              //     downs = document.onmousedown = () => { //鼠标按下事件
+              //       // console.log('down');//start
+              //       // downs = document.onmousedown = null;
+              //       var mx = window.event.clientX//鼠标初始位置
+              //         , my = window.event.clientY
+              //         , cx = this.offset[1].replace("px", "")//初始位置
+              //         , cy = this.offset[0].replace("px", "");
 
-          //       var mouseWheel = that.map.on("mouse-wheel", myMouseWheelHandler);
+              //       //判断鼠标是否在地图上
+              //       // console.log(mx,'+',my);
+              //       if (mx > 359 && mx < 1543 && my > 5 && my < 818) {
+              //         // console.log('on map')
+              //         if (endx != null && endy != null) {
+              //           cx = endx;
+              //           cy = endy;
+              //         }
+              //         moves = document.onmousemove = () => {//鼠标移动事件
+              //           // console.log('move');//move
+              //           // console.log(this.offset)
+              //           var ux = window.event.clientX//记录实时位置
+              //             , uy = window.event.clientY;
+              //           endx = +cx + (ux - mx)// 初始位置+(鼠标初始位置-实时位置)
+              //           endy = +cy + (uy - my);
+              //           layero[0].style.left = endx + 'px';
+              //           layero[0].style.top = endy + 'px';
+              //           // console.log(+cx, +cy,'初始位置');
+              //           // console.log(mx, my,'鼠标初始位置');
+              //           // console.log(ux, uy,'记录实时位置');
+              //           // console.log(ux, uy,'最后位置');
+              //           isclickD = false;
+              //           ups = document.onmouseup = () => {//鼠标抬起事件
+              //             // console.log('up');//end
+              //             // downs = document.onmousedown = null;
+              //             moves = document.onmousemove = null;
+              //             ups = document.onmouseup = null;
+              //             var timess = setTimeout(() => {
+              //               clearTimeout(timess);
+              //               timess = null;
+              //               isclickD = true;
+              //             }, 1);
+              //           }
+              //         }
+              //       }
+              //     }
+              //     clickD = document.onclick = () => {
+              //       if (isclickD) {
+              //         parent[0].layer.close(index);
+              //         // parent[0].layer.close(+index + 1);
+              //         // parent[0].layer.closeAll();
+              //         // console.log(111111111111)
+              //         clickD = document.onclick = null;
+              //       }
+              //     }
 
-          //       function myMouseWheelHandler(event) {
-          //         // console.log("Mouse wheel value = " + event.value);
-          //         parent[0].layer.close(index);
-          //         parent[0].layer.close(+index + 1);
-          //         mouseWheel.remove();
-          //       }
+              //     var mouseWheel = that.map.on("mouse-wheel", myMouseWheelHandler);
+              //     //鼠标滚轮事件
+              //     function myMouseWheelHandler(event) {
+              //       // console.log("Mouse wheel value = " + event.value);
+              //       parent[0].layer.close(index);
+              //       // parent[0].layer.close(+index + 1);
+              //       mouseWheel.remove();
+              //     }
 
-          //     },
-          //     end: function () { //关闭事件
+              //   },
+              //   end: function () { //关闭事件
 
-          //     }
-          //   });
-            // that.layuiLayer.open({ //第二个iframe
-            //   title: '',
-            //   type: 2,
-            //   shadeClose: true,
-            //   shade: false,
-            //   skin: 'demo-class',
-            //   id: 'onelyTwo',
-            //   maxmin: false, //开启最大化最小化按钮
-            //   area: ['360px', '484px'],
-            //   // area: 'auto',
-            //   offset: 'r',
-            //   skin: 'flare',
-            //   isOutAnim: false,
-            //   closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
-            //   content: ['./popup/html/FlareClusterLayer_v3 copy.html'],
-            //   resize: false,
-            //   scrollbar: false,
-            //   // tipsMore: true, //允许多个tipe
-            //   // content: num,
-            //   success: function (layero, index) { //成功后添加全局点击关闭
-            //     // var z = document.onclick = ()=>{
-            //     //   parent[0].layer.close(index);
-            //     // //   // parent[0].layer.close(+index + 1);
-            //     //   z = null;
-            //     // }
-            //     //尝试传值
-            //     //js对象转json对象
-            //     // $("#layui-layer-iframe" + index).contents().find("input").val(JSON.stringify(evt.graphic.attributes));
-            //     $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
-            //   },
-            // })
-            that.layuiLayer.open({ //第二个iframe
-              title: '',
-              type: 2,
-              shadeClose: true,
-              shade: false,
-              skin: 'demo-class',
-              id: 'onelyTwo',
-              maxmin: false, //开启最大化最小化按钮
-              area: ['360px', '484px'],
-              // area: 'auto',
-              offset: winSize,
-              skin: 'flare',
-              isOutAnim: false,
-              closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
-              content: ['./popup/html/FlareClusterLayer_v3 copy.html'],
-              resize: false,
-              scrollbar: false,
-              // tipsMore: true, //允许多个tipe
-              // content: num,
-              success: function (layero, index) { //成功后添加全局点击关闭
-                // var z = document.onclick = ()=>{
-                //   parent[0].layer.close(index);
-                // //   // parent[0].layer.close(+index + 1);
-                //   z = null;
-                // }
-                //尝试传值
-                //js对象转json对象
-                // $("#layui-layer-iframe" + index).contents().find("input").val(JSON.stringify(evt.graphic.attributes));
-                $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
+              //   }
+              // });
+              that.layuiLayer.open({ //第二个iframe
+                title: '',
+                type: 2,
+                shadeClose: true,
+                shade: false,
+                skin: 'demo-class',
+                id: 'onelyTwo',
+                maxmin: false, //开启最大化最小化按钮
+                area: ['360px', '484px'],
+                // area: 'auto',
+                offset: winSize,
+                skin: 'flare',
+                isOutAnim: false,
+                closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
+                content: ['./popup/html/FlareClusterLayer_v3 copy.html'],
+                resize: false,
+                scrollbar: false,
+                // tipsMore: true, //允许多个tipe
+                // content: num,
+                success: function (layero, index) { //成功后添加全局点击关闭
+                  // var z = document.onclick = ()=>{
+                  //   parent[0].layer.close(index);
+                  // //   // parent[0].layer.close(+index + 1);
+                  //   z = null;
+                  // }
+                  //尝试传值
+                  //js对象转json对象
+                  // $("#layui-layer-iframe" + index).contents().find("input").val(JSON.stringify(evt.graphic.attributes));
+                  $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
+                },
+              })
+              //一个弹窗
+              //     that.layuiLayer.open({ //第二个iframe
+              //       title: '',
+              //       type: 2,
+              //       shadeClose: true,
+              //       shade: false,
+              //       skin: 'demo-class',
+              //       id: 'onelyTwo',
+              //       maxmin: false, //开启最大化最小化按钮
+              //       area: ['360px', '484px'],
+              //       // area: 'auto',
+              //       offset: winSize,
+              //       skin: 'flare',
+              //       isOutAnim: false,
+              //       closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
+              //       content: ['./popup/html/FlareClusterLayer_v3 copy.html'],
+              //       resize: false,
+              //       scrollbar: false,
+              //       // tipsMore: true, //允许多个tipe
+              //       // content: num,
+              //       success: function (layero, index) { //成功后添加全局点击关闭
+              //         $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
 
-              },
+              //       },
+              //     })
             })
-          })
+          }
+        } else if (this.userState == '警情') {
+          // console.log(this.userState)
+          var fCard = (posi, setdata, winSize) => { // 设备弹窗函数
+            var that = this,
+              url = './popup/html/FlareClusterLayer_v3.html',
+              clickD = null,
+              clickG = null,
+              downs = null,
+              moves = null,
+              ups = null;
+
+            layui.use('layer', function () {
+              that.layuiLayer = layui.layer;
+              that.layuiLayer.config({
+                extend: 'myskin/FlareClusterLayer.css'
+              });
+              that.layuiLayer.close(that.layuiLayer.index);
+              that.layuiLayer.open({
+                title: '',
+                type: 2,
+                shadeClose: true,
+                shade: false,
+                skin: 'demo-class',
+                id: 'onelyTwo',
+                maxmin: false, //开启最大化最小化按钮
+                area: ['360px', '484px'],
+                // area: 'auto',
+                offset: winSize,
+                skin: 'flare',
+                isOutAnim: false,
+                closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
+                content: ['./popup/html/SupervisoryMapPdata.html'],
+                resize: false,
+                scrollbar: false,
+                // tipsMore: true, //允许多个tipe
+                // content: num,
+                success: function (layero, index) { //成功后添加全局点击关闭
+                  $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
+
+                },
+              })
+            })
+          }
+        } else if (this.userState == '业主') {
+          // console.log(this.userState)
+          var fCard = (posi, setdata, winSize) => { // 设备弹窗函数
+            var that = this,
+              url = './popup/html/FlareClusterLayer_v3.html',
+              clickD = null,
+              clickG = null,
+              downs = null,
+              moves = null,
+              ups = null;
+
+            layui.use('layer', function () {
+              that.layuiLayer = layui.layer;
+              that.layuiLayer.config({
+                extend: 'myskin/FlareClusterLayer.css'
+              });
+              that.layuiLayer.close(that.layuiLayer.index);
+
+              that.layuiLayer.open({
+                title: '',
+                type: 2,
+                shadeClose: true,
+                shade: false,
+                skin: 'demo-class',
+                id: 'onelyTwo',
+                maxmin: false, //开启最大化最小化按钮
+                area: ['360px', '484px'],
+                // area: 'auto',
+                offset: winSize,
+                skin: 'flare',
+                isOutAnim: false,
+                closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
+                content: ['./popup/html/SupervisoryMapYdata.html'],
+                resize: false,
+                scrollbar: false,
+                // tipsMore: true, //允许多个tipe
+                // content: num,
+                success: function (layero, index) { //成功后添加全局点击关闭
+                  $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
+
+                },
+              })
+            })
+          }
         }
+
+
         if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
-          var offsetMy = [+evt.screenY - 300 + 'px', +evt.screenX - 172.5 + 'px'];
+          var offsetMy = [+evt.screenY - 310 + 'px', +evt.screenX - 168 + 'px'];
+          if (und == '控制端') {//控制端弹窗关闭
+            var offsetMy = [+window.innerHeight / 2 - 115 + 'px', (+window.innerWidth - 360) / 2 + 257 + 'px'];
+            // console.log('控制端中浮',offsetMy)
+          }
           // console.log(evt.screenY);
           var winSize = [+window.innerHeight / 2 - 242 + 'px', +window.innerWidth - 380 + 'px']
           // console.log(winSize,4454645634536);
-          fCard(offsetMy, setdata,winSize);
+          fCard(offsetMy, setdata, winSize);
           mySelf.onceTimeMethod = setTimeout(() => {
             mySelf.onceTimeMethod = null;
           }, mySelf.onceTime);
-        } else {};
+        } else { };
 
       } else {
-        // var taxLotExtent = evt.graphic.geometry.getExtent(); 
-        // this.map.setExtent(evt.graphic._extent)
-        // this.map.setZoom(this.map.getZoom() + 1)//地图中心缩放
-        // console.log(this.map.getZoom())
-        // this.map.setZoom(18);
-        // event.stopPropagation();
+
         var lgtd = Number(evt.graphic.attributes.x);//地图跟随缩放
         var lttd = Number(evt.graphic.attributes.y);
         // // console.log($(this).find('input').attr('lttd'));
         var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 }));//根据输入坐标信息找地图上的点
         this._map.centerAndZoom(position, this.map.getZoom() + 1);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
 
-        parent[0].layer.close(this.indexs)
-        parent[0].layer.close(+this.indexs + 1)
+        // parent[0].layer.close(this.indexs)
+        // parent[0].layer.close(+this.indexs + 1)
 
         // console.log('111:', this.map.zoomToFullExtent(), '222:', evt, evt.graphic._extent, 'zoom');
       }
       // console.log(evt)
-
       if (und != '控制端') {
         this._restoreInfoWindowSettings();
 
@@ -513,7 +586,6 @@
 
         }
       }
-
     },
 
     //Add a data point to be clustered.
@@ -664,6 +736,7 @@
 
     _graphicDraw: function (e) {
       var g = e.graphic;
+
       if (g.attributes.isCluster) {
         //create the cluster graphics if this is a cluster being drawn
         var cl = this._getClusterFromGraphic(g);
@@ -701,7 +774,8 @@
       }
     },
 
-    _graphicMouseOut: function (e) {
+    _graphicMouseOut: function (e) {//鼠标进入图片事件
+
       if (e.graphic.attributes.isFlare) {
         this._hideFlareDetail();
       }
@@ -784,8 +858,10 @@
     },
 
     _clusterData: function () {
-
+      //此函数当前仅适用于不使用预聚集数据的情况
       //this function currently only applies if not using preclustered data
+      // console.log('改变111111111111111')
+
       if (this.preClustered) {
         return;
       }
@@ -871,15 +947,15 @@
           cl.singles.push(obj);
         }
       }
-
       for (i = 0, len = this.gridClusters.length; i < len; i++) {
         if (this.gridClusters[i].clusterCount === 1) {
+          // console.log(this.gridClusters)
+
           this._createSingle(this.gridClusters[i].singles[0]);
         } else if (this.gridClusters[i].clusterCount > 0) {
           this._createCluster(this.gridClusters[i]);
         }
       }
-
     },
 
     _createClusterGrid: function (webExtent) {
@@ -925,19 +1001,38 @@
       }
     },
 
-    _createSingle: function (single) {
+    _createSingle: function (single) {//加载图标样式
       this.singles.push(single);
       delete single.graphic;
       var symbol;
-      if (single.jtype == 1) {
-        symbol = new esri.symbol.PictureMarkerSymbol("./images/yj-jingbao.png", 40, 40);
-      } else {
-        if (single.onlineStatus == 1) {
+      if (single.tenant_id == undefined) {//如果不是业主
+        if (single.dtype == 3) {
+          symbol = new esri.symbol.PictureMarkerSymbol("./images/by-jingbao.png", 40, 40);
+        } else if (single.dtype == 2) {
+          symbol = new esri.symbol.PictureMarkerSymbol("./images/selfbaojin2.gif", 80, 80);
+        } else if (single.dtype == 1) {
           symbol = new esri.symbol.PictureMarkerSymbol("./images/zx-jingbao.png", 40, 40);
-        } else {
+        } else if (single.dtype == 0) {
           symbol = new esri.symbol.PictureMarkerSymbol("./images/dx-jingbao.png", 40, 40);
         }
+        // if (single.state != '') {
+        //   symbol = new esri.symbol.PictureMarkerSymbol("./images/by-jingbao.png", 40, 40);
+        // } else {
+        //   if (single.jtype == 1) {
+        //     symbol = new esri.symbol.PictureMarkerSymbol("./images/selfbaojin2.gif", 80, 80);
+        //   } else {
+        //     if (single.onlineStatus == 1) {
+        //       symbol = new esri.symbol.PictureMarkerSymbol("./images/zx-jingbao.png", 40, 40);
+        //     } else {
+        //       symbol = new esri.symbol.PictureMarkerSymbol("./images/dx-jingbao.png", 40, 40);
+        //     }
+        //   }
+        // }
+      } else {//是业主
+        symbol = new esri.symbol.PictureMarkerSymbol("./images/Yz.png", 40, 40);
       }
+
+
 
       var point = new Point(single[this.xPropertyName], single[this.yPropertyName], this.spatialRef);
       var attributes = lang.clone(single);
@@ -1031,11 +1126,11 @@
       //add a text element for the label to display the count and add to the group
       var shapeCenter = this._getShapeCenter(cluster.graphicShape);
       var textShape = groupShape.createText({
-          x: shapeCenter.x,
-          y: shapeCenter.y + (this.textSymbol.font.size / 2 - 2),
-          text: cluster.clusterCount,
-          align: 'middle'
-        })
+        x: shapeCenter.x,
+        y: shapeCenter.y + (this.textSymbol.font.size / 2 - 6),//聚合文字设置
+        text: cluster.clusterCount,
+        align: 'middle'
+      })
         .setFont({
           size: this.textSymbol.font.size,
           family: this.textSymbol.font.family,
@@ -1159,10 +1254,10 @@
       //create a transparent circle that contains the boundary of the flares, this is to make sure the mouse events don't fire moving in between flares
       var conCircleRadius = (center.x - (bbox.x - radius - buffer)) + radius; //get the radius of the circle to contain everything
       var containerCircle = groupShape.createCircle({
-          cx: center.x,
-          cy: center.y,
-          r: conCircleRadius
-        })
+        cx: center.x,
+        cy: +center.y + 3,
+        r: conCircleRadius
+      })
         //.setStroke({ width: 1, color: "000" })
         .setFill(new Color([0, 0, 0, 0]));
       containerCircle.rawNode.setAttribute("class", "flare-object cluster-object");
@@ -1461,16 +1556,16 @@
       tooltipGroup.rawNode.setAttribute("class", "tooltip-text");
 
       var textShapes = [];
-      for (var i = 0, len = lines.length; i < len; i++) {
+      for (var i = 0, len = lines.length; i < len; i++) {//聚合字体
         var textShape = tooltipGroup.createText({
-            x: xPos,
-            y: yPos + (i * 10),
-            text: lines[i],
-            align: 'middle'
-          })
+          x: xPos,
+          y: yPos + (i * 10),
+          text: lines[i],
+          align: 'middle'
+        })
           .setFill("#000")
           .setFont({
-            size: 8,
+            size: 8,//聚合字体大小//没效果
             family: this.textSymbol.font.family,
             weight: this.textSymbol.font.weight
           });
@@ -1481,12 +1576,12 @@
       var rectPadding = 2;
       var textBox = tooltipGroup.getBoundingBox();
       var rectShape = tooltipGroup.createRect({
-          x: textBox.x - rectPadding,
-          y: textBox.y - rectPadding,
-          width: textBox.width + (rectPadding * 2),
-          height: textBox.height + (rectPadding * 2),
-          r: 0
-        })
+        x: textBox.x - rectPadding,
+        y: textBox.y - rectPadding,
+        width: textBox.width + (rectPadding * 2),
+        height: textBox.height + (rectPadding * 2),
+        r: 0
+      })
         .setFill(new Color([255, 255, 255, 0.9]))
         .setStroke({
           color: "#000",
@@ -1622,11 +1717,11 @@
       //Have to add the flare text after the flare group animation otherwise Edge just reloads the page and dies for some reason?
       if (this.shape.flareText) {
         var flareText = this.shape.createText({
-            x: this.shape.flareText.location.x,
-            y: this.shape.flareText.location.y,
-            text: this.shape.flareText.text,
-            align: 'middle'
-          })
+          x: this.shape.flareText.location.x,
+          y: this.shape.flareText.location.y,
+          text: this.shape.flareText.text,
+          align: 'middle'
+        })
           .setFill(layer.textSymbol.color)
           .setFont({
             size: this.shape.flareText.textSize,
@@ -1671,8 +1766,11 @@
 
     _clickOpenOnclick: function (e, und, indexControl) {
       this.onClick(e, und, indexControl)
+    },
+    _setUserState: function (state) {
+      // console.log(state)
+      this.userState = state
     }
-
     //#endregion
   });
 });

--
Gitblit v1.9.3