document.write(''); /* * 人员监督:实时定位和轨迹方法 */ var deviceListMan=[]; var police3DInterval; //构建人员目录树方法 function createManZTree(data,count){ //构建目录树 var treeObjList = null; if (data !== undefined || data != null) { var setting = { check : { enable : true, autoCheckTrigger : true, chkboxType : { "Y" : "s", "N" : "s" } }, data : { simpleData : { enable : true } }, callback : { onCheck : policePeopleTreeChecked, onClick : policeLayerzTreeOnClick, }, view : { showIcon : showIconForTree, selectedMulti : true, //可以多选 fontCss : setFontCss //状态颜色回调函数 } }; var treeListArray = []; var treeName = "人员目录树 "+" (共"+count+"名)"; var pNode = {id:0, pId:"", name:treeName, isNode:false, icon:"../images/treeicon/police1.png"}; treeListArray.push(pNode); for (var i = 0; i < data.length; i++) { var treeObj = {}; treeObj.id = data[i].policeId; treeObj.pId = 0; treeObj.name = data[i].name+"("+data[i].origin+")"; treeObj.highlight = false; treeObj.isNode = true; treeObj.phone = data[i].deviceNum; treeObj.deviceType = data[i].deviceType; treeListArray.push(treeObj); } treeObjList = $.fn.zTree.init($("#policeTree"), setting, treeListArray); police3DInterval = window.setInterval(function(){ getGpsRealdata(deviceListMan); },30000); //父节点显示图标 function showIconForTree(treeId, treeNode) { return treeNode.isParent == true; } //点击复选框颜色变换的回调函数 function setFontCss(treeId, treeNode) { return treeNode.checked == true ? {color:"white"} : {color:"gray"}; }; //check触发回调函数 function policePeopleTreeChecked(event, treeId, treeNode) { var node = treeObjList.getNodeByParam('id',treeNode.id,null); treeObjList.updateNode(node); treeObjList.reAsyncChildNodes(node,'refresh',false); if(treeNode.level!=0){ if(treeNode.checked){ if(deviceListMan.length==0||deviceListMan.indexOf(treeNode.phone)==-1){ deviceListMan.push(treeNode.phone); } getGpsRealdata(deviceListMan); }else{ deviceListMan.splice(deviceListMan.indexOf(treeNode.phone),1); viewer.entities.removeById('po'+treeNode.phone); closeVideoPop(treeNode.phone); } } } } } //停止刷新人员位置 function stopFreshPolicePos(){ window.clearInterval(police3DInterval); } //人员目录树点击定位方法 function policeLayerzTreeOnClick(event, treeId, treeNode) { getManPosByDn(treeNode.phone); } //创建人员标签 var police3D_marks = []; function createPolicePin(url,id,point,policeName){ var policePin = viewer.entities.getById('po'+id); if(policePin == undefined){ police3D_marks.push(viewer.entities.add({ name : '人员', id : 'po'+id, position : point, billboard : { image : url, verticalOrigin : Cesium.VerticalOrigin.BOTTOM, pixelOffset : new Cesium.Cartesian2(36.0, 0.0), scaleByDistance : new Cesium.NearFarScalar(1000, 1, 20000, 0.2), pixelOffsetScaleByDistance : new Cesium.NearFarScalar(1000, 1, 20000, 0.2), }, label : { show : true, verticalOrigin : Cesium.VerticalOrigin.BOTTOM, horizontalOrigin : Cesium.HorizontalOrigin.CENTER, font : 'bold 16px Helvetica', fillColor : Cesium.Color.WHITE, text : policeName, pixelOffset : new Cesium.Cartesian2(54.0, -135.0), disableDepthTestDistance : 100000000, scaleByDistance : new Cesium.NearFarScalar(1000, 1, 20000, 0.2), pixelOffsetScaleByDistance : new Cesium.NearFarScalar(1000, 1, 20000, 0.2), } })); }else{ policePin.position = point; } } //人员实时监督 function showPolice_3D(realdata,type){ var url = ''; $.each(realdata, function(i,val) { switch (realdata[i].origin) { case '特警': url = '../images/pinimg/10.png'; break; case '巡警': url = '../images/pinimg/12.png'; break; case '治安警察': url = '../images/pinimg/11.png'; break; // case '刑警': // break; // case '边防警察': // break; // case '应急警察': // break; // case '城管': // break; default: break; } var point; if(type=='RHPC'){ point = Cesium.Cartesian3.fromDegrees(Number(this.longitude),Number(this.latitude),Number(this.elevation)); }else{ var posArr = this.realPos.split(','); point = Cesium.Cartesian3.fromDegrees(Number(posArr[0]),Number(posArr[1]),Number(posArr[2])); } var puid = this.deviceNum; var policeName = this.name; var origin = this.origin; var clampedpoint = viewer.scene.clampToHeight(point); createPolicePin(url,puid,clampedpoint,policeName); //如有气泡,更新气泡位置 var posRealData = realdata[i].realPos.split(','); if(document.getElementById("popupDiv"+puid)){ var cartographic = Cesium.Cartographic.fromCartesian(point); var pos = {"lon":Number(posRealData[0]),"lat":Number(posRealData[1]),"alt":Number(cartographic.height)}; CesiumPop.updatePopPos(viewer,puid,pos,70,260,185,Cesium.Color.WHITE); } }); addPOMListener(); } function deletePolice3DMarks(){ for(var i = 0; i < police3D_marks.length; i++){ viewer.entities.remove(police3D_marks[i]); // 将标注从场景移除 } police3D_marks.length = 0; }