var cesiumdrawutil=( function () { //大气监测数据3D点云显示 开始/ function createair3dcloud(taskid) { airdata.getairdatas(taskid, function (airdatas) { air3dcloud(airdatas); //airColorBar.resetairdataColor(UiParaManager.getCurParaName()); dingweibyairdatas(airdatas); /*var minmaxCurAirDatas=airColorBar.getairdataparaminmax(UiParaManager.getCurParaName()); airColorBar.resetparaBar(minmaxCurAirDatas.min,minmaxCurAirDatas.max); $("#inputairparamin").val(minmaxCurAirDatas.min); $("#inputairparamax").val(minmaxCurAirDatas.max); airColorBar.resetairdataColor(UiParaManager.getCurParaName());//重新设置数据渲染颜色 PointCloud2Grid.setGridsLabels(UiParaManager.getCurParaName());//重新设置网格标签*/ }) } function air3dcloud(airdatas) { if (!airdatas || !airdatas.length || airdatas.length < 1) { return ; } for ( let i = 0; i < airdatas.length; i++) { let airdata=airdatas[i]; if (!airdata.alt || isNaN(airdata.alt) || airdata.alt < 1) { airdata.alt=Math.random()*20; } createair3dcloudpoint(airdata.lon, airdata.lat,airdata.alt,10,airdata,airEntityNameCommon.air3dEntityNames.aircloud_point); } var minmaxCurAirDatas=airColorBar.getairdataparaminmax(UiParaManager.getCurParaName()); airColorBar.resetparaBar(minmaxCurAirDatas.min,minmaxCurAirDatas.max); $( "#inputairparamin" ).val(minmaxCurAirDatas.min); $( "#inputairparamax" ).val(minmaxCurAirDatas.max); airColorBar.resetairdataColor(UiParaManager.getCurParaName()); //重新设置数据渲染颜色 PointCloud2Grid.setGridsLabels(UiParaManager.getCurParaName()); //重新设置网格标签 draw3Dfream(airdatas); } //获取最小经纬度高程,最大经纬度高程 function getminXminYminHmaxXmaxYmaxH(airdatas) { var minlon=parseFloat(airdatas[0].lon); var minlat=parseFloat(airdatas[0].lat); var maxlon=parseFloat(airdatas[0].lon); var maxlat=parseFloat(airdatas[0].lat); var minheight=parseFloat(airdatas[0].alt); var maxheight=parseFloat(airdatas[0].alt); for ( let i = 0; i < airdatas.length; i++) { let airdata=airdatas[i]; let airlon, airlat, airalt; if (airdata.lon) { airlon=parseFloat(airdata.lon); if (!minlon||airlon<minlon){ minlon=airlon; } if (!maxlon || airlon > maxlon) { maxlon=airlon; } } if (airdata.lat) { airlat=parseFloat(airdata.lat); if (!minlat || airlat < minlat) { minlat=airlat; } if (!maxlat || airlat > maxlat) { maxlat=airlat; } } if (airdata.alt) { airalt=parseFloat(airdata.alt); if (!minheight || airalt < minheight) { minheight=airalt; } if (!maxheight || airalt > maxheight) { maxheight=airalt; } } } return { minX:minlon, minY:minlat, minH:minheight, maxX:maxlon, maxY:maxlat, maxH:maxheight } } /** * 创建3D点云的单个点 * @param lon * @param lat * @param alt * @param pointSize * @param airdatainfo * @param entityName */ function createair3dcloudpoint(lon,lat,alt,pointSize,airdatainfo,entityName) { if (!pointSize) { pointSize=20; } var entity = viewer.entities.add({ name:entityName, position : Cesium.Cartesian3.fromDegrees(lon, lat, alt), point : { pixelSize : pointSize }, airdatainfo:airdatainfo }); return entity; } function addWall(x1, y1, z1, x2, y2, z2,maxheight1,maxheight2,entityName) { viewer.entities.add({ name : entityName, wall : { positions : Cesium.Cartesian3.fromDegreesArrayHeights([x1, y1, z1, x2, y2, z2]), minimumHeights : [maxheight1, maxheight2], material :Cesium.Color.DIMGREY.withAlpha(0.8) } }); } function addwalllabel(lon,lat,alt,text,entityName) { var entity = viewer.entities.add({ name:entityName, position : Cesium.Cartesian3.fromDegrees(lon, lat,alt), label : { text : text, //pixelOffset : new Cesium.Cartesian2(0.0, -image.height), pixelOffset : new window.Cesium.Cartesian2(0, -3), font : '11px italic arial' } }); entity.label.scale = 1.0; entity.label.showBackground = true ; } function addrectangle(minX,minY,maxX,maxY,name) { var entity = viewer.entities.add({ name:name, rectangle : { //coordinates : Cesium.Rectangle.fromDegrees(116.4762700, 39.9942863, 116.4764700, 39.9944863), coordinates : Cesium.Rectangle.fromDegrees(minX, minY, maxX, maxY), extrudedHeight : 0, outline : true , outlineColor : Cesium.Color.WHITE, outlineWidth : 4,material:window.Cesium.Color.ALICEBLUE.withAlpha(0.5) } }); } function addsimpleline0(DegresArry,width,color,name,id){ cesiumUtil.removeEntitesById(id); var Line = viewer.entities.add({ name : name, id : id, polyline : { positions : Cesium.Cartesian3.fromDegreesArrayHeights(DegresArry), width : width, material : color } }); return Line; } function addGlowingLine(DegresArry,width,color,name,glowPower,id){ cesiumUtil.removeEntitesById(id); var glowingLine = viewer.entities.add({ name : name, id: id, polyline : { positions :Cesium.Cartesian3.fromDegreesArrayHeights(DegresArry), width : width, show: true , material : new Cesium.PolylineGlowMaterialProperty({ glowPower : glowPower, color : color }) } }); return glowingLine; } //大气监测数据3D点云显示 结束/ //大气监测数据网格显示 开始/ function createairGrid(taskid,gridwidth) { airdata.getairdatas(taskid, function (airdatas) { /*airGrid(airdatas);*/ PointCloud2Grid.createAirGrids(airdatas,gridwidth); airColorBar.resetairdataColor(UiParaManager.getCurParaName()); dingweibyairdatas(airdatas); }) } /** * 同时加载多个任务数据 * @param taskids * @param gridwidth * @param callback */ function createairGridMultiTasks(taskids, gridwidth) { if (!taskids || !taskids.length || taskids < 1) { return null ; } for ( let i = 0; i < taskids.length;i++){ let airtaskid=taskids[i]; airdata.getairdatas(airtaskid, function (airdatas) { PointCloud2Grid.createAirGrids(airdatas,gridwidth); if (i==taskids.length-1){ //airColorBar.resetairdataColor(UiParaManager.getCurParaName()); dingweibyairdatas(airdatas); var minmaxCurAirDatas=airColorBar.getairdataparaminmax(UiParaManager.getCurParaName()); airColorBar.resetparaBar(minmaxCurAirDatas.min,minmaxCurAirDatas.max); $( "#inputairparamin" ).val(minmaxCurAirDatas.min); $( "#inputairparamax" ).val(minmaxCurAirDatas.max); airColorBar.resetairdataColor(UiParaManager.getCurParaName()); //重新设置数据渲染颜色 PointCloud2Grid.setGridsLabels(UiParaManager.getCurParaName()); //重新设置网格标签 } }) } } //大气监测数据网格显示 结束/ /** * 根据airdatas定位,每个taskid对应的数据 */ function dingweibyairdatas(airdatas) { var minXminYminHmaxXmaxYmaxH=getminXminYminHmaxXmaxYmaxH(airdatas); var minlon=minXminYminHmaxXmaxYmaxH.minX; var minlat=minXminYminHmaxXmaxYmaxH.minY; var maxlon=minXminYminHmaxXmaxYmaxH.maxX; var maxlat=minXminYminHmaxXmaxYmaxH.maxY; var minheight=minXminYminHmaxXmaxYmaxH.minH; var maxheight=minXminYminHmaxXmaxYmaxH.maxH; cesiumLocateUtil.dingwei(minlon,minlat,maxlon,maxlat,-90); } /** * 根据taskid定位 */ function dingweibyairtaskid(airtaskid) { var airdatas=getairdatasbytaskid(airtaskid); var minXminYminHmaxXmaxYmaxH=getminXminYminHmaxXmaxYmaxH(airdatas); var minlon=minXminYminHmaxXmaxYmaxH.minX; var minlat=minXminYminHmaxXmaxYmaxH.minY; var maxlon=minXminYminHmaxXmaxYmaxH.maxX; var maxlat=minXminYminHmaxXmaxYmaxH.maxY; var minheight=minXminYminHmaxXmaxYmaxH.minH; var maxheight=minXminYminHmaxXmaxYmaxH.maxH; cesiumLocateUtil.dingwei(minlon,minlat,maxlon,maxlat,-90); } /** * 根据taskid获取当前加载的大气监测数据 * @param taskid */ function getairdatasbytaskid(taskid) { var airdatas=[]; for ( var i=0;i<window.viewer.entities.values.length;i++) { var entity=window.viewer.entities.values[i]; if (entity.name===airEntityNameCommon.airGridEntityNames.airgrid||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_point){ let airinfo=entity.airdatainfo; if (airinfo&&airinfo.taskid==taskid) { airdatas.push(airinfo); } } } return airdatas; } /** * 获取当前加载的大气监测数据 */ function getairdatas() { var airdatas=[]; for ( var i=0;i<window.viewer.entities.values.length;i++) { var entity=window.viewer.entities.values[i]; if (entity.name===airEntityNameCommon.airGridEntityNames.airgrid||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_point){ let airinfo=entity.airdatainfo; if (airinfo) { airdatas.push(airinfo); } } } return airdatas; } /** * 根据taskid清除大气监测数据 * @param taskid */ function removedatabytaskid(taskid) { for ( var i=0;i<window.viewer.entities.values.length;i++) { var entity=window.viewer.entities.values[i]; if (entity.name===airEntityNameCommon.airGridEntityNames.airgrid||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_point){ let airinfo=entity.airdatainfo; if (airinfo&&airinfo.taskid==taskid) { window.viewer.entities.removeById(entity.id); i--; } } } } /** * 根据airtaskid设置数据显示和不显示 * @param airtaskid */ function showhideairdatabytaskid(airtaskid,visible) { for ( var i=0;i<window.viewer.entities.values.length;i++) { var entity=window.viewer.entities.values[i]; if (entity.name===airEntityNameCommon.airGridEntityNames.airgrid||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_point){ let airinfo=entity.airdatainfo; if (airinfo&&airinfo.taskid==airtaskid) { entity.show=visible; } } } } /** * 清除所有 */ function clearAll() { for ( var i=0;i<window.viewer.entities.values.length;i++) { var entity=window.viewer.entities.values[i]; if (entity.name===airEntityNameCommon.airGridEntityNames.airgrid ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_point ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_label ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_wall ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_line){ window.viewer.entities.removeById(entity.id); i--; } } livedata.clearinterval(); if (window.frames[ "ifreamairlivedataline" ] && window.frames[ "ifreamairlivedataline" ].contentWindow && window.frames[ "ifreamairlivedataline" ].contentWindow.chartutil &&window.frames[ "ifreamairlivedataline" ].contentWindow.chartutil.clearinterval){ window.frames[ "ifreamairlivedataline" ].contentWindow.chartutil.clearinterval(); } } /** * 清除所有网格 */ function clearAllGrid() { for ( var i=0;i<window.viewer.entities.values.length;i++) { var entity=window.viewer.entities.values[i]; if (entity.name===airEntityNameCommon.airGridEntityNames.airgrid){ window.viewer.entities.removeById(entity.id); i--; } } } /** * 清除所有3D点云 */ function clearAll3Dpoints() { for ( var i=0;i<window.viewer.entities.values.length;i++) { var entity=window.viewer.entities.values[i]; if (entity.name==airEntityNameCommon.air3dEntityNames.aircloud_point ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_label ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_wall ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_line){ window.viewer.entities.removeById(entity.id); i--; } } } /** * 清除3D点云的坐标系和标注等 */ function clear3Dfream() { for ( var i=0;i<window.viewer.entities.values.length;i++) { var entity=window.viewer.entities.values[i]; if (entity.name==airEntityNameCommon.air3dEntityNames.aircloud_label ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_wall ||entity.name==airEntityNameCommon.air3dEntityNames.aircloud_line){ window.viewer.entities.removeById(entity.id); i--; } } } /** * 重新绘制3D点云坐标系,不渲染数据 */ function draw3Dfream(airdatas) { clear3Dfream(); if (!airdatas || !airdatas.length || airdatas.length < 1) { return ; } var minXminYminHmaxXmaxYmaxH=getminXminYminHmaxXmaxYmaxH(airdatas); var minlon=minXminYminHmaxXmaxYmaxH.minX; var minlat=minXminYminHmaxXmaxYmaxH.minY; var maxlon=minXminYminHmaxXmaxYmaxH.maxX; var maxlat=minXminYminHmaxXmaxYmaxH.maxY; var minheight=minXminYminHmaxXmaxYmaxH.minH; var maxheight=minXminYminHmaxXmaxYmaxH.maxH; if (maxheight<1){ maxheight=1; } maxheight=maxheight*1.5; //cesiumLocateUtil.setViewer(viewer); //cesiumLocateUtil.dingweiByPoint(minlon,minlat,maxheight,3); var cellLen=(maxlon-minlon)/5; var cellLat=(maxlat-minlat)/5; var cellheight=(maxheight-minheight)/5; var extraLen=cellLen/3; var extraLat=cellLat/3; minlon=minlon-cellLen; minlat=minlat-cellLat; maxlon=maxlon+cellLen; maxlat=maxlat+cellLat; minheight=minheight; maxheight=maxheight+cellheight; cellLen=(maxlon-minlon)/5; cellLat=(maxlat-minlat)/5; cellheight=(maxheight-minheight)/5; extraLen=cellLen/3; extraLat=cellLat/3; //添加坐标轴 addsimpleline0([minlon,maxlat,minheight,minlon,minlat-extraLat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c001' ); addsimpleline0([minlon,maxlat,minheight,maxlon,maxlat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c002' ); addsimpleline0([minlon,maxlat,minheight,minlon,maxlat,maxheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c003' ); addsimpleline0([minlon,minlat,minheight,maxlon,minlat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c004' ); addsimpleline0([maxlon,maxlat,minheight,maxlon,minlat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c005' ); //添加网格线 西 addsimpleline0([minlon,maxlat,minheight+cellheight,minlon,minlat-extraLat,minheight+cellheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c006' ); addsimpleline0([minlon,maxlat,minheight+cellheight*2,minlon,minlat-extraLat,minheight+cellheight*2],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c007' ); addsimpleline0([minlon,maxlat,minheight+cellheight*3,minlon,minlat-extraLat,minheight+cellheight*3],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c008' ); addsimpleline0([minlon,maxlat,minheight+cellheight*4,minlon,minlat-extraLat,minheight+cellheight*4],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c009' ); addsimpleline0([minlon,maxlat,minheight+cellheight*5,minlon,minlat-extraLat,minheight+cellheight*5],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0010' ); //添加网格线 北 addsimpleline0([minlon,maxlat,minheight+cellheight,maxlon+extraLen,maxlat,minheight+cellheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0011' ); addsimpleline0([minlon,maxlat,minheight+cellheight*2,maxlon+extraLen,maxlat,minheight+cellheight*2],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0012' ); addsimpleline0([minlon,maxlat,minheight+cellheight*3,maxlon+extraLen,maxlat,minheight+cellheight*3],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0013' ); addsimpleline0([minlon,maxlat,minheight+cellheight*4,maxlon+extraLen,maxlat,minheight+cellheight*4],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0014' ); addsimpleline0([minlon,maxlat,minheight+cellheight*5,maxlon+extraLen,maxlat,minheight+cellheight*5],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0015' ); //添加网格线 南 addsimpleline0([minlon+cellLen,minlat-extraLat,minheight,minlon+cellLen,minlat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0016' ); addsimpleline0([minlon+cellLen*2,minlat-extraLat,minheight,minlon+cellLen*2,minlat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0017' ); addsimpleline0([minlon+cellLen*3,minlat-extraLat,minheight,minlon+cellLen*3,minlat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0018' ); addsimpleline0([minlon+cellLen*4,minlat-extraLat,minheight,minlon+cellLen*4,minlat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0019' ); addsimpleline0([minlon+cellLen*5,minlat-extraLat,minheight,minlon+cellLen*5,minlat,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0020' ); //添加网格线 东 addsimpleline0([maxlon,minlat,minheight,maxlon+extraLen,minlat ,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0021' ); addsimpleline0([maxlon,minlat+cellLat,minheight,maxlon+extraLen,minlat+cellLat ,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0021' ); addsimpleline0([maxlon,minlat+cellLat*2,minheight,maxlon+extraLen,minlat+cellLat*2,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0022' ); addsimpleline0([maxlon,minlat+cellLat*3,minheight,maxlon+extraLen,minlat+cellLat*3,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0023' ); addsimpleline0([maxlon,minlat+cellLat*4,minheight,maxlon+extraLen,minlat+cellLat*4,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0024' ); addsimpleline0([maxlon,minlat+cellLat*5,minheight,maxlon+extraLen,minlat+cellLat*5,minheight],2,Cesium.Color.RED,airEntityNameCommon.air3dEntityNames.aircloud_line, 'c0025' ); //添加墙 西 addWall(minlon,maxlat,minheight+0.001, minlon,minlat,minheight+0.001,maxheight,maxheight,airEntityNameCommon.air3dEntityNames.aircloud_wall); //添加墙 北 addWall(minlon,maxlat,minheight+0.001, maxlon,maxlat,minheight+0.001,maxheight,maxheight,airEntityNameCommon.air3dEntityNames.aircloud_wall); //添加标签 西 addwalllabel(minlon,minlat-extraLat,minheight+cellheight,(minheight+cellheight).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(minlon,minlat-extraLat,minheight+cellheight*2,(minheight+cellheight*2).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(minlon,minlat-extraLat,minheight+cellheight*3,(minheight+cellheight*3).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(minlon,minlat-extraLat,minheight+cellheight*4,(minheight+cellheight*4).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(minlon,minlat-extraLat,minheight+cellheight*5,(minheight+cellheight*5).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); //添加标签 北 addwalllabel(maxlon+extraLen,maxlat,minheight+cellheight,(minheight+cellheight).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(maxlon+extraLen,maxlat,minheight+cellheight*2,(minheight+cellheight*2).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(maxlon+extraLen,maxlat,minheight+cellheight*3,(minheight+cellheight*3).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(maxlon+extraLen,maxlat,minheight+cellheight*4,(minheight+cellheight*4).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(maxlon+extraLen,maxlat,minheight+cellheight*5,(minheight+cellheight*5).toFixed(2)+ 'm' ,airEntityNameCommon.air3dEntityNames.aircloud_label); //添加标签 南 addwalllabel(minlon+cellLen,minlat-extraLat,minheight,(minlon+cellLen).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(minlon+cellLen*2,minlat-extraLat,minheight,(minlon+cellLen*2).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(minlon+cellLen*3,minlat-extraLat,minheight,(minlon+cellLen*3).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(minlon+cellLen*4,minlat-extraLat,minheight,(minlon+cellLen*4).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(minlon+cellLen*5,minlat-extraLat,minheight,(minlon+cellLen*5).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); //添加标签 东 addwalllabel(maxlon+extraLen,minlat,minheight,(minlat).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(maxlon+extraLen,minlat+cellLat,minheight,(minlat+cellLat).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(maxlon+extraLen,minlat+cellLat*2,minheight,(minlat+cellLat*2).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(maxlon+extraLen,minlat+cellLat*3,minheight,(minlat+cellLat*3).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); addwalllabel(maxlon+extraLen,minlat+cellLat*4,minheight,(minlat+cellLat*4).toFixed(4)+ '' ,airEntityNameCommon.air3dEntityNames.aircloud_label); //addwalllabel(maxlon+extraLen,minlat+cellLat*5,minheight,(minlat+cellLat*5).toFixed(4)+''); } /** * 切换展示形式 表格 或者3D点云 * @param airType */ function changeairtype(airType) { if (airType == 0) { let airmultitaskdatas=[]; for ( let i=0;i<window.viewer.entities.values.length;i++) { let entity=window.viewer.entities.values[i]; if (entity.name==airEntityNameCommon.air3dEntityNames.aircloud_point){ let airinfo=entity.airdatainfo; if (airinfo) { airmultitaskdatas.push(airinfo); } } } if (airmultitaskdatas.length < 1) { return ; } PointCloud2Grid.createAirGrids(airmultitaskdatas,airdata.gridWidthjiaodu); airColorBar.resetairdataColor(UiParaManager.getCurParaName()); clearAll3Dpoints(); } else { let airmultitaskdatas=[]; let airdatas=[]; var firstdata = airColorBar.findFirstAirData(); if (!firstdata) { return ; } var curtaskid=firstdata.taskid; for ( let i=0;i<window.viewer.entities.values.length;i++) { let entity=window.viewer.entities.values[i]; if (entity.name==airEntityNameCommon.airGridEntityNames.airgrid){ let airinfo=entity.airdatainfo; let taskid=airinfo.taskid; if (airinfo) { if (taskid !== curtaskid) { airmultitaskdatas.push([].concat(JSON.parse(JSON.stringify(airdatas)))); airdatas=[]; airdatas.push(airinfo); } else { airdatas.push(airinfo); } curtaskid=taskid; } } } airmultitaskdatas.push([].concat(JSON.parse(JSON.stringify(airdatas)))); if (airmultitaskdatas.length > 0) { for ( let i = 0; i < airmultitaskdatas.length; i++) { let airdatas=airmultitaskdatas[i]; air3dcloud(airdatas); } } clearAllGrid(); } } return { createair3dcloud:createair3dcloud, createairGrid:createairGrid, dingweibyairtaskid:dingweibyairtaskid, createairGridMultiTasks:createairGridMultiTasks, removedatabytaskid:removedatabytaskid, clearAll:clearAll, changeairtype:changeairtype, draw3Dfream:draw3Dfream, createair3dcloudpoint:createair3dcloudpoint, getairdatas:getairdatas, clear3Dfream:clear3Dfream } })() |