|
@@ -127,7 +127,9 @@
|
|
|
node.childNodes.forEach(item => {
|
|
|
_self.setLayersControl(jt3d, item.data, checked);
|
|
|
_self.$refs.treeRef.setChecked(item, checked);
|
|
|
- _self.childNodesChange(item, checked);
|
|
|
+ if (item.childNodes.length > 0) {
|
|
|
+ _self.childNodesChange(item, checked);
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
|
|
@@ -182,6 +184,7 @@
|
|
|
}
|
|
|
|
|
|
await new Promise((resolve, reject) => {
|
|
|
+
|
|
|
switch (data.loadtype) {
|
|
|
case "GeoJsonPoint": //GeoJsonPoint
|
|
|
if (checked) {
|
|
@@ -205,10 +208,12 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ // let list = window.viewer.dataSources.getByName(_serviceId)
|
|
|
+ // if (!list) {
|
|
|
jt3d.layer.addBillboardByGeoJson(_options, function(serviceId) {
|
|
|
|
|
|
});
|
|
|
+ // }
|
|
|
|
|
|
} else {
|
|
|
jt3d.layer.removeDataSources({
|
|
@@ -335,14 +340,20 @@
|
|
|
|
|
|
if (parameterset) {
|
|
|
if (parameterset.points) {
|
|
|
- jt3d.layer.addPolygonImageMaterial({
|
|
|
- id: _serviceId,
|
|
|
- points: parameterset.points,
|
|
|
- url: data.datasource,
|
|
|
- alpha: _opacity
|
|
|
- }, function(serviceId) {
|
|
|
|
|
|
- });
|
|
|
+ if (!window[_serviceId]) {
|
|
|
+
|
|
|
+
|
|
|
+ jt3d.layer.addPolygonImageMaterial({
|
|
|
+ id: _serviceId,
|
|
|
+ points: parameterset.points,
|
|
|
+ url: data.datasource,
|
|
|
+ alpha: _opacity
|
|
|
+ }, function(serviceId) {
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
} else {
|
|
|
ElMessage("请检测图层表parameterset字段是否设置points");
|
|
|
}
|
|
@@ -362,15 +373,17 @@
|
|
|
if (checked) {
|
|
|
data.isinit = '1';
|
|
|
|
|
|
- let floatLayer = new this.jt3dSDK.CrImageServerLayer({
|
|
|
- viewer: jt3d._viewer,
|
|
|
- url: data.datasource,
|
|
|
- opacity: _opacity,
|
|
|
- show: true
|
|
|
- });
|
|
|
- window[_serviceId] = floatLayer;
|
|
|
- //添加网格地图
|
|
|
- // window[_serviceId].show();
|
|
|
+ if (!window[_serviceId]) {
|
|
|
+ let floatLayer = new this.jt3dSDK.CrImageServerLayer({
|
|
|
+ viewer: jt3d._viewer,
|
|
|
+ url: data.datasource,
|
|
|
+ opacity: _opacity,
|
|
|
+ show: true
|
|
|
+ });
|
|
|
+ window[_serviceId] = floatLayer;
|
|
|
+ //添加网格地图
|
|
|
+ // window[_serviceId].show();
|
|
|
+ }
|
|
|
} else {
|
|
|
window[_serviceId].hide();
|
|
|
data.isinit = '0';
|
|
@@ -389,7 +402,10 @@
|
|
|
_options.terrainExaggeration = parameterset.terrainExaggeration;
|
|
|
}
|
|
|
}
|
|
|
- jt3d.layer.addTerrain(_options);
|
|
|
+
|
|
|
+ if (!window.viewer.terrainProvider) {
|
|
|
+ jt3d.layer.addTerrain(_options);
|
|
|
+ }
|
|
|
} else {
|
|
|
jt3d.layer.removeTerrain().then(res => {
|
|
|
data.isinit = '0';
|
|
@@ -418,21 +434,25 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //加载服务
|
|
|
- jt3d.layer.addUrlTemplateImagery(_options, function(serviceId) {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
+
|
|
|
+ //加载服务
|
|
|
+ jt3d.layer.addUrlTemplateImagery(_options, function(serviceId) {
|
|
|
|
|
|
- //重置图层顺序
|
|
|
- _self.setLayerNumber(jt3d, serviceId)
|
|
|
- if (atlastype === "底图") {
|
|
|
- var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
- imageryLayers.raise(window[serviceId]);
|
|
|
- if (layertype === '标注') {
|
|
|
+ //重置图层顺序
|
|
|
+ _self.setLayerNumber(jt3d, serviceId)
|
|
|
+ if (atlastype === "底图") {
|
|
|
var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
+ imageryLayers.raise(window[serviceId]);
|
|
|
+ if (layertype === '标注') {
|
|
|
+ var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
+ imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
@@ -472,20 +492,24 @@
|
|
|
_options.maximumLevel = parameterset.maximumLevel;
|
|
|
}
|
|
|
|
|
|
- jt3d.layer.addWebMapTileService(_options, function(serviceId) {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
|
|
|
- //重置图层顺序
|
|
|
- _self.setLayerNumber(jt3d, serviceId)
|
|
|
- if (atlastype === "底图") {
|
|
|
- var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
- imageryLayers.raise(window[serviceId]);
|
|
|
- if (layertype === '标注') {
|
|
|
+ jt3d.layer.addWebMapTileService(_options, function(serviceId) {
|
|
|
+
|
|
|
+ //重置图层顺序
|
|
|
+ _self.setLayerNumber(jt3d, serviceId)
|
|
|
+ if (atlastype === "底图") {
|
|
|
var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
+ imageryLayers.raise(window[serviceId]);
|
|
|
+ if (layertype === '标注') {
|
|
|
+ var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
+ imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
} else {
|
|
|
ElMessage("请检测图层表parameterset字段是否设置tileMatrixSetID");
|
|
@@ -532,20 +556,23 @@
|
|
|
_options.maximumLevel = parameterset.maximumLevel;
|
|
|
}
|
|
|
|
|
|
- jt3d.layer.addWebMapService(_options, function(serviceId) {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
|
|
|
- //重置图层顺序
|
|
|
- _self.setLayerNumber(jt3d, serviceId)
|
|
|
- if (atlastype === "底图") {
|
|
|
- var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
- imageryLayers.raise(window[serviceId]);
|
|
|
- if (layertype === '标注') {
|
|
|
+ jt3d.layer.addWebMapService(_options, function(serviceId) {
|
|
|
+
|
|
|
+ //重置图层顺序
|
|
|
+ _self.setLayerNumber(jt3d, serviceId)
|
|
|
+ if (atlastype === "底图") {
|
|
|
var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
+ imageryLayers.raise(window[serviceId]);
|
|
|
+ if (layertype === '标注') {
|
|
|
+ var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
+ imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
} else {
|
|
|
ElMessage("请检测图层表parameterset字段是否设置layers");
|
|
|
}
|
|
@@ -576,21 +603,25 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //加载服务
|
|
|
- jt3d.layer.addArcGisMapServer(_options, function(serviceId) {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
|
|
|
- //重置图层顺序
|
|
|
- _self.setLayerNumber(jt3d, serviceId)
|
|
|
- if (atlastype === "底图") {
|
|
|
- var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
- imageryLayers.raise(window[serviceId]);
|
|
|
- if (layertype === '标注') {
|
|
|
+ //加载服务
|
|
|
+ jt3d.layer.addArcGisMapServer(_options, function(serviceId) {
|
|
|
+
|
|
|
+ //重置图层顺序
|
|
|
+ _self.setLayerNumber(jt3d, serviceId)
|
|
|
+ if (atlastype === "底图") {
|
|
|
var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
+ imageryLayers.raise(window[serviceId]);
|
|
|
+ if (layertype === '标注') {
|
|
|
+ var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
+ imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- })
|
|
|
+ })
|
|
|
+
|
|
|
+ }
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
@@ -618,20 +649,25 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
|
|
|
|
|
|
- //重置图层顺序
|
|
|
- _self.setLayerNumber(jt3d, serviceId)
|
|
|
- if (atlastype === "底图") {
|
|
|
- var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
- imageryLayers.raise(window[serviceId]);
|
|
|
- if (layertype === '标注') {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
+
|
|
|
+ jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
|
|
|
+
|
|
|
+ //重置图层顺序
|
|
|
+ _self.setLayerNumber(jt3d, serviceId)
|
|
|
+ if (atlastype === "底图") {
|
|
|
var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
- imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
+ imageryLayers.raise(window[serviceId]);
|
|
|
+ if (layertype === '标注') {
|
|
|
+ var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
+ imageryLayers.raiseToTop(window[serviceId]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
@@ -645,9 +681,7 @@
|
|
|
if (checked) {
|
|
|
data.isinit = '1';
|
|
|
|
|
|
- if (window[_serviceId]) {
|
|
|
- window[_serviceId].show = true;
|
|
|
- } else {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -667,17 +701,17 @@
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
|
- if (window[_serviceId]) {
|
|
|
- //3DTileset数据量比较大,会报很多cesium错误
|
|
|
- // jt3d.layer.removeScenePrimitives({
|
|
|
- // serviceId: _serviceId
|
|
|
- // }).then(res => {
|
|
|
- // data.isinit = '0';
|
|
|
- // });
|
|
|
-
|
|
|
- window[_serviceId].show = false;
|
|
|
+ //3DTileset数据量比较大,会报很多cesium错误
|
|
|
+ jt3d.layer.removeScenePrimitives({
|
|
|
+ serviceId: _serviceId
|
|
|
+ }).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- }
|
|
|
+ });
|
|
|
+
|
|
|
+ // if (window[_serviceId]) {
|
|
|
+ // window[_serviceId].show = false;
|
|
|
+ // data.isinit = '0';
|
|
|
+ // }
|
|
|
}
|
|
|
|
|
|
break;
|
|
@@ -685,9 +719,7 @@
|
|
|
if (checked) {
|
|
|
data.isinit = '1';
|
|
|
|
|
|
- if (window[_serviceId]) {
|
|
|
- window[_serviceId].show = true;
|
|
|
- } else {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -705,16 +737,16 @@
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
|
- if (window[_serviceId]) {
|
|
|
- // jt3d.layer.removeScenePrimitives({
|
|
|
- // serviceId: _serviceId
|
|
|
- // }).then(res => {
|
|
|
- // data.isinit = '0';
|
|
|
- // });
|
|
|
-
|
|
|
- window[_serviceId].show = false;
|
|
|
+ jt3d.layer.removeScenePrimitives({
|
|
|
+ serviceId: _serviceId
|
|
|
+ }).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- }
|
|
|
+ });
|
|
|
+
|
|
|
+ // if (window[_serviceId]) {
|
|
|
+ // window[_serviceId].show = false;
|
|
|
+ // data.isinit = '0';
|
|
|
+ // }
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
@@ -1080,7 +1112,7 @@
|
|
|
// 叶子节点(无子节点)
|
|
|
&.is-leaf {
|
|
|
color: transparent;
|
|
|
- display: none; // 也可以去掉
|
|
|
+ // display: none; // 也可以去掉
|
|
|
}
|
|
|
}
|
|
|
}
|