|
@@ -136,7 +136,7 @@
|
|
|
* @param {Object} data 传递给 data 属性的数组中该节点所对应的对象
|
|
|
* @param {Object} checked 节点本身是否被选中
|
|
|
*/
|
|
|
- setLayersControl(jt3d, data, checked) {
|
|
|
+ async setLayersControl(jt3d, data, checked) {
|
|
|
console.log('操作', '图层控制')
|
|
|
|
|
|
let _self = this;
|
|
@@ -181,7 +181,7 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
+ await new Promise((resolve, reject) => {
|
|
|
switch (data.loadtype) {
|
|
|
case "GeoJsonPoint": //GeoJsonPoint
|
|
|
if (checked) {
|
|
@@ -207,7 +207,7 @@
|
|
|
|
|
|
|
|
|
jt3d.layer.addBillboardByGeoJson(_options, function(serviceId) {
|
|
|
- resolve(true);
|
|
|
+
|
|
|
});
|
|
|
|
|
|
} else {
|
|
@@ -215,7 +215,6 @@
|
|
|
serviceId: _serviceId,
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -234,7 +233,7 @@
|
|
|
if (parameterset.clampToGround) { //是否贴地
|
|
|
_options.clampToGround = parameterset.clampToGround;
|
|
|
}
|
|
|
- if (!parameterset.isImageAlpha) { //是否采用图片颜色
|
|
|
+ if (parameterset.isImageAlpha) { //是否采用图片颜色
|
|
|
_options.isImageAlpha = parameterset.isImageAlpha;
|
|
|
}
|
|
|
if (parameterset.imgUrl) { //精灵线图片
|
|
@@ -263,14 +262,13 @@
|
|
|
}
|
|
|
|
|
|
jt3d.layer.addPolylineByGeoJson(_options, function(serviceId) {
|
|
|
- resolve(true);
|
|
|
+
|
|
|
});
|
|
|
} else {
|
|
|
jt3d.layer.removeDataSources({
|
|
|
serviceId: _serviceId,
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -315,7 +313,6 @@
|
|
|
// let flyToEntity = jt3d.LocateUtil.flyToEntityByPoints([
|
|
|
// parameterset.points,
|
|
|
// ], 'point');
|
|
|
- resolve(true);
|
|
|
});
|
|
|
|
|
|
} else {
|
|
@@ -329,7 +326,6 @@
|
|
|
serviceId: _serviceId,
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -339,14 +335,17 @@
|
|
|
|
|
|
if (parameterset) {
|
|
|
if (parameterset.points) {
|
|
|
- jt3d.layer.addPolygonImageMaterial({
|
|
|
- id: _serviceId,
|
|
|
- points: parameterset.points,
|
|
|
- url: data.datasource,
|
|
|
- alpha: _opacity
|
|
|
- }, function(serviceId) {
|
|
|
- resolve(true);
|
|
|
- });
|
|
|
+
|
|
|
+ if (!window[_serviceId]) {
|
|
|
+ jt3d.layer.addPolygonImageMaterial({
|
|
|
+ id: _serviceId,
|
|
|
+ points: parameterset.points,
|
|
|
+ url: data.datasource,
|
|
|
+ alpha: _opacity
|
|
|
+ }, function(serviceId) {
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
} else {
|
|
|
ElMessage("请检测图层表parameterset字段是否设置points");
|
|
|
}
|
|
@@ -358,7 +357,6 @@
|
|
|
serviceId: _serviceId,
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -367,20 +365,20 @@
|
|
|
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();
|
|
|
- resolve(true);
|
|
|
+ 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';
|
|
|
- resolve(true);
|
|
|
}
|
|
|
break;
|
|
|
case "DEM": //地形服务(DEM)
|
|
@@ -397,11 +395,9 @@
|
|
|
}
|
|
|
}
|
|
|
jt3d.layer.addTerrain(_options);
|
|
|
- resolve(true);
|
|
|
} else {
|
|
|
jt3d.layer.removeTerrain().then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -427,29 +423,28 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //加载服务
|
|
|
- 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]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- resolve(true);
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -484,21 +479,22 @@
|
|
|
_options.maximumLevel = parameterset.maximumLevel;
|
|
|
}
|
|
|
|
|
|
- jt3d.layer.addWebMapTileService(_options, function(serviceId) {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
+ jt3d.layer.addWebMapTileService(_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]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- resolve(true);
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
} else {
|
|
|
ElMessage("请检测图层表parameterset字段是否设置tileMatrixSetID");
|
|
@@ -520,7 +516,6 @@
|
|
|
serviceId: _serviceId
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -534,10 +529,11 @@
|
|
|
url: data.datasource,
|
|
|
alpha: _opacity
|
|
|
}
|
|
|
+
|
|
|
if (parameterset) {
|
|
|
if (parameterset.layers) { //WMTS请求的层名
|
|
|
_options.layers = parameterset.layers;
|
|
|
-
|
|
|
+ _options.parameters = parameterset.parameters
|
|
|
if (parameterset.minimumLevel) { //最小层级
|
|
|
_options.minimumLevel = parameterset.minimumLevel;
|
|
|
}
|
|
@@ -545,21 +541,22 @@
|
|
|
_options.maximumLevel = parameterset.maximumLevel;
|
|
|
}
|
|
|
|
|
|
- jt3d.layer.addWebMapService(_options, function(serviceId) {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
+ jt3d.layer.addWebMapService(_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]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- resolve(true);
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
} else {
|
|
|
ElMessage("请检测图层表parameterset字段是否设置layers");
|
|
|
}
|
|
@@ -571,7 +568,6 @@
|
|
|
serviceId: _serviceId
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -591,28 +587,29 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //加载服务
|
|
|
- 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]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- resolve(true);
|
|
|
- })
|
|
|
+ })
|
|
|
+ }
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -635,27 +632,27 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
+ 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 === '标注') {
|
|
|
+ //重置图层顺序
|
|
|
+ _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]);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- resolve(true);
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
|
}).then(res => {
|
|
|
data.isinit = '0';
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
@@ -664,9 +661,7 @@
|
|
|
if (checked) {
|
|
|
data.isinit = '1';
|
|
|
|
|
|
- if (window[_serviceId]) {
|
|
|
- window[_serviceId].show = true;
|
|
|
- } else {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -683,22 +678,20 @@
|
|
|
//加载实景
|
|
|
jt3d.layer.addCesium3DTileset(_options, function(serviceId) {
|
|
|
window[_serviceId].show = true;
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
} 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';
|
|
|
- resolve(true);
|
|
|
- }
|
|
|
+ });
|
|
|
+
|
|
|
+ // if (window[_serviceId]) {
|
|
|
+ // window[_serviceId].show = false;
|
|
|
+ // data.isinit = '0';
|
|
|
+ // }
|
|
|
}
|
|
|
|
|
|
break;
|
|
@@ -706,9 +699,7 @@
|
|
|
if (checked) {
|
|
|
data.isinit = '1';
|
|
|
|
|
|
- if (window[_serviceId]) {
|
|
|
- window[_serviceId].show = true;
|
|
|
- } else {
|
|
|
+ if (!window[_serviceId]) {
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -723,21 +714,19 @@
|
|
|
//加载白膜
|
|
|
jt3d.layer.addCesium3DTilesetBm(_options, function(serviceId) {
|
|
|
window[_serviceId].show = true;
|
|
|
- resolve(true);
|
|
|
});
|
|
|
}
|
|
|
} 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';
|
|
|
- resolve(true);
|
|
|
- }
|
|
|
+ });
|
|
|
+
|
|
|
+ // if (window[_serviceId]) {
|
|
|
+ // window[_serviceId].show = false;
|
|
|
+ // data.isinit = '0';
|
|
|
+ // }
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
@@ -750,7 +739,7 @@
|
|
|
* 服务定位
|
|
|
* @param {Object} data
|
|
|
*/
|
|
|
- setLayersLocation(jt3d, data) {
|
|
|
+ async setLayersLocation(jt3d, data) {
|
|
|
console.log('操作', '单击定位')
|
|
|
let _self = this;
|
|
|
|
|
@@ -779,7 +768,7 @@
|
|
|
}
|
|
|
|
|
|
if (data.isinit === '1') {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
+ await new Promise((resolve, reject) => {
|
|
|
switch (data.loadtype) {
|
|
|
case "GeoJsonPolyline": //GeoJsonPolyline
|
|
|
|
|
@@ -795,8 +784,6 @@
|
|
|
pitch: -90,
|
|
|
range: 8880
|
|
|
});
|
|
|
-
|
|
|
- resolve(true);
|
|
|
} else {
|
|
|
ElMessage("请检测图层表parameterset字段是否设置points");
|
|
|
}
|
|
@@ -808,7 +795,7 @@
|
|
|
case "PolygonImageMaterial": //图片材质
|
|
|
|
|
|
break;
|
|
|
- case "CrImageServerLayer": //地形服务(DEM)
|
|
|
+ case "CrImageServerLayer": //规划图
|
|
|
|
|
|
break;
|
|
|
case "DEM": //地形服务(DEM)
|
|
@@ -852,8 +839,6 @@
|
|
|
// jt3d.LocateUtil.flyToTileset(window[_serviceId],options);
|
|
|
|
|
|
// jt3d.LocateUtil.zoomToTilesets(window[_serviceId], options);
|
|
|
-
|
|
|
- resolve(true);
|
|
|
}
|
|
|
break;
|
|
|
case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
|
|
@@ -910,6 +895,12 @@
|
|
|
|
|
|
var imageryLayers = jt3d._viewer.imageryLayers;
|
|
|
|
|
|
+ // //标注层置顶
|
|
|
+ // if (store.markID) {
|
|
|
+ // console.log('标注id', store.markID)
|
|
|
+ // imageryLayers.raiseToTop(window[store.markID]);
|
|
|
+ // }
|
|
|
+
|
|
|
//设置图层初始顺序
|
|
|
imageryLayers.lowerToBottom(window[serviceId]);
|
|
|
imageryLayers.raise(window[serviceId]);
|
|
@@ -927,6 +918,9 @@
|
|
|
imageryLayers.raise(window[serviceId])
|
|
|
console.log('aaa', serviceId)
|
|
|
|
|
|
+ } else {
|
|
|
+ // imageryLayers.raiseToTop(window[store.markID]);
|
|
|
+ // break;
|
|
|
}
|
|
|
}
|
|
|
}
|