|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case "shpFeature": { | 
|---|
|  |  |  | 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])); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var layer = null; | 
|---|
|  |  |  | parent.Cesium.when.all(shpPromises, function (files) { | 
|---|
|  |  |  | for (let i = 0; i < shpArray.length; i++) { | 
|---|
|  |  |  | files[i].name = shpArray[i]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var shpProvider = new parent.VectorTileImageryProvider({ | 
|---|
|  |  |  | source: files, | 
|---|
|  |  |  | zIndex: 99, | 
|---|
|  |  |  | removeDuplicate: false, | 
|---|
|  |  |  | defaultStyle: { | 
|---|
|  |  |  | outlineColor: "rgb(255,0,0)", | 
|---|
|  |  |  | fillColor: "rgba(255,0,0,0.6)", | 
|---|
|  |  |  | lineWidth: 1, | 
|---|
|  |  |  | fill: false, | 
|---|
|  |  |  | tileCacheSize: 200, | 
|---|
|  |  |  | showMaker: false, | 
|---|
|  |  |  | showCenterLabel: true, | 
|---|
|  |  |  | fontColor: "rgba(255,0,0,1)", | 
|---|
|  |  |  | labelOffsetX: -10, | 
|---|
|  |  |  | labelOffsetY: -5, | 
|---|
|  |  |  | fontSize: 13, | 
|---|
|  |  |  | fontFamily: "黑体", | 
|---|
|  |  |  | centerLabelPropertyName: "NAME", | 
|---|
|  |  |  | lineCap: "round", | 
|---|
|  |  |  | shadowColor: "black", | 
|---|
|  |  |  | shadowOffsetX: 1, | 
|---|
|  |  |  | shadowOffsetY: -1, | 
|---|
|  |  |  | shadowBlur: 1, | 
|---|
|  |  |  | lineJoin: "round" | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | maximumLevel: 20, | 
|---|
|  |  |  | minimumLevel: 1, | 
|---|
|  |  |  | simplify: false | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | shpProvider.readyPromise.then(function () { | 
|---|
|  |  |  | layer = parent.viewer.imageryLayers.addImageryProvider(shpProvider); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | parent.viewer.flyTo(layer); | 
|---|
|  |  |  | parent.Cesium.Camera.DEFAULT_VIEW_RECTANGLE = shpProvider.rectangle; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | console.log("shpFeature click"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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(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; | 
|---|
|  |  |  | parent.Cesium.when.all(shpPromises, function (files) { | 
|---|
|  |  |  | for (let i = 0; i < shpArray.length; i++) { | 
|---|
|  |  |  | files[i].name = shpArray[i]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var shpProvider = new parent.VectorTileImageryProvider({ | 
|---|
|  |  |  | source: files, | 
|---|
|  |  |  | zIndex: len, | 
|---|
|  |  |  | removeDuplicate: false, | 
|---|
|  |  |  | defaultStyle: { | 
|---|
|  |  |  | outlineColor: data.color, | 
|---|
|  |  |  | fillColor: data.color, | 
|---|
|  |  |  | lineWidth: 1, | 
|---|
|  |  |  | fill: false, | 
|---|
|  |  |  | tileCacheSize: 200, | 
|---|
|  |  |  | showMaker: false, | 
|---|
|  |  |  | showCenterLabel: true, | 
|---|
|  |  |  | fontColor: "rgba(255,0,0,1)", | 
|---|
|  |  |  | labelOffsetX: -10, | 
|---|
|  |  |  | labelOffsetY: -5, | 
|---|
|  |  |  | fontSize: 13, | 
|---|
|  |  |  | fontFamily: "黑体", | 
|---|
|  |  |  | centerLabelPropertyName: "NAME", | 
|---|
|  |  |  | lineCap: "round", | 
|---|
|  |  |  | shadowColor: "black", | 
|---|
|  |  |  | shadowOffsetX: 1, | 
|---|
|  |  |  | shadowOffsetY: -1, | 
|---|
|  |  |  | shadowBlur: 1, | 
|---|
|  |  |  | lineJoin: "round" | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | maximumLevel: 20, | 
|---|
|  |  |  | minimumLevel: 1, | 
|---|
|  |  |  | simplify: false | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | shpProvider.readyPromise.then(function () { | 
|---|
|  |  |  | 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 (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting') { | 
|---|
|  |  |  | //changeChecked(ischeck, parent.getNodeById(objData.id)); | 
|---|
|  |  |  | /* | 
|---|