|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case "shpFeature": { | 
|---|
|  |  |  | let path = data.path; | 
|---|
|  |  |  | console.log("shpFeature click"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (model != undefined) { | 
|---|
|  |  |  | viewer.flyTo(model, { | 
|---|
|  |  |  | offset: { | 
|---|
|  |  |  | heading: 0, | 
|---|
|  |  |  | pitch: -90 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }).then(function () { | 
|---|
|  |  |  | // if (obj.data.field == 'Primitive') { | 
|---|
|  |  |  | //     setTimeout(() => { | 
|---|
|  |  |  | //         dptiles(model.root.children); | 
|---|
|  |  |  | //     }, 5000); | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else if (type == 'DDE') { | 
|---|
|  |  |  | var lon, lat, alt; | 
|---|
|  |  |  | lon = obj.data.lon; | 
|---|
|  |  |  | lat = obj.data.lat; | 
|---|
|  |  |  | alt = obj.data.altitude; | 
|---|
|  |  |  | console.log(lon, lat, alt); | 
|---|
|  |  |  | if (lon != undefined && lat != undefined && alt != undefined) { | 
|---|
|  |  |  | let flyPromise = viewer.camera.flyTo({ | 
|---|
|  |  |  | duration: 3, | 
|---|
|  |  |  | destination: Cesium.Cartesian3.fromDegrees(Number(lon), Number(lat), alt), | 
|---|
|  |  |  | orientation: { | 
|---|
|  |  |  | heading: Cesium.Math.toRadians(0),                          //绕垂直于地心的轴旋转 | 
|---|
|  |  |  | pitch: Cesium.Math.toRadians(-90),      //绕纬度线旋转 | 
|---|
|  |  |  | roll: Cesium.Math.toRadians(0)                                 //绕经度线旋转 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | , oncheck: function (obj) { | 
|---|
|  |  |  | if (isloading) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | var ischeck = obj.checked; | 
|---|
|  |  |  | var objData = obj.data; | 
|---|
|  |  |  | var type = objData.field; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (type == "shpFeature") {//如果是 shp图层 | 
|---|
|  |  |  | if(ischeck){ | 
|---|
|  |  |  | let data= obj.data.ext; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let path = data.path; | 
|---|
|  |  |  | let shpArray = JSON.parse(path); | 
|---|
|  |  |  | var shpPromises = []; | 
|---|
|  |  |  | for (let i = 0; i < shpArray.length; i++) { | 
|---|
|  |  |  | shpPromises.push(Cesium.loadBlob(parent.httpConfig.nginxUrl + shpArray[i])); | 
|---|
|  |  |  | shpPromises.push(parent.Cesium.loadBlob(parent.httpConfig.nginxUrl + shpArray[i])); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //判断是否存在 | 
|---|
|  |  |  | let len = parent.viewer.imageryLayers.length; | 
|---|
|  |  |  | if (parent.layerMap.get(obj.data.id) != null) { | 
|---|
|  |  |  | parent.vMsg.warning("图层已经存在无需重复加载"); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var layer = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | for (let i = 0; i < shpArray.length; i++) { | 
|---|
|  |  |  | files[i].name = shpArray[i]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var shpProvider = new parent.VectorTileImageryProvider({ | 
|---|
|  |  |  | source: files, | 
|---|
|  |  |  | zIndex: 99, | 
|---|
|  |  |  | zIndex: len, | 
|---|
|  |  |  | removeDuplicate: false, | 
|---|
|  |  |  | defaultStyle: { | 
|---|
|  |  |  | outlineColor: "rgb(255,0,0)", | 
|---|
|  |  |  | fillColor: "rgba(255,0,0,0.6)", | 
|---|
|  |  |  | outlineColor: data.color, | 
|---|
|  |  |  | fillColor: data.color, | 
|---|
|  |  |  | lineWidth: 1, | 
|---|
|  |  |  | fill: false, | 
|---|
|  |  |  | tileCacheSize: 200, | 
|---|
|  |  |  | 
|---|
|  |  |  | simplify: false | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | shpProvider.readyPromise.then(function () { | 
|---|
|  |  |  | layer = parent.viewer.imageryLayers.addImageryProvider(shpProvider); | 
|---|
|  |  |  | parent.layerMap.set(obj.data.id, len); | 
|---|
|  |  |  | layer = parent.viewer.imageryLayers.addImageryProvider(shpProvider, len); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | parent.viewer.flyTo(layer); | 
|---|
|  |  |  | parent.Cesium.Camera.DEFAULT_VIEW_RECTANGLE = shpProvider.rectangle; | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }else{//移除shp | 
|---|
|  |  |  | var id = obj.data.id; | 
|---|
|  |  |  | var index = parent.layerMap.get(id); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | parent.viewer.imageryLayers.remove(parent.viewer.imageryLayers.get(index),true); | 
|---|
|  |  |  | parent.layerMap.delete(id); | 
|---|
|  |  |  | for(let key of  parent.layerMap.keys()){//数组的游标-1 | 
|---|
|  |  |  | if( parent.layerMap.get(key)>index){ | 
|---|
|  |  |  | parent.layerMap.set(key, parent.layerMap.get(key)-1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (model != undefined) { | 
|---|
|  |  |  | viewer.flyTo(model, { | 
|---|
|  |  |  | offset: { | 
|---|
|  |  |  | heading: 0, | 
|---|
|  |  |  | pitch: -90 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }).then(function () { | 
|---|
|  |  |  | // if (obj.data.field == 'Primitive') { | 
|---|
|  |  |  | //     setTimeout(() => { | 
|---|
|  |  |  | //         dptiles(model.root.children); | 
|---|
|  |  |  | //     }, 5000); | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else if (type == 'DDE') { | 
|---|
|  |  |  | var lon, lat, alt; | 
|---|
|  |  |  | lon = obj.data.lon; | 
|---|
|  |  |  | lat = obj.data.lat; | 
|---|
|  |  |  | alt = obj.data.altitude; | 
|---|
|  |  |  | console.log(lon,lat,alt); | 
|---|
|  |  |  | let flyPromise = viewer.camera.flyTo({ | 
|---|
|  |  |  | duration: 3, | 
|---|
|  |  |  | destination: Cesium.Cartesian3.fromDegrees(Number(lon), Number(lat), alt), | 
|---|
|  |  |  | orientation: { | 
|---|
|  |  |  | heading: Cesium.Math.toRadians(0),                          //绕垂直于地心的轴旋转 | 
|---|
|  |  |  | pitch: Cesium.Math.toRadians(-90),      //绕纬度线旋转 | 
|---|
|  |  |  | roll: Cesium.Math.toRadians(0)                                 //绕经度线旋转 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | , oncheck: function (obj) { | 
|---|
|  |  |  | if (isloading) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | var ischeck = obj.checked; | 
|---|
|  |  |  | var objData = obj.data; | 
|---|
|  |  |  | var type = objData.field; | 
|---|
|  |  |  | if (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting') { | 
|---|
|  |  |  | //changeChecked(ischeck, parent.getNodeById(objData.id)); | 
|---|
|  |  |  | /* | 
|---|