|
@@ -69,442 +69,50 @@
|
|
methods: {
|
|
methods: {
|
|
/**
|
|
/**
|
|
* 左侧图层控制
|
|
* 左侧图层控制
|
|
- * @param {Object} data
|
|
|
|
|
|
+ * @param {Object} item
|
|
*/
|
|
*/
|
|
- handleClickLeft(data) {
|
|
|
|
|
|
+ handleClickLeft(item) {
|
|
let _self = this;
|
|
let _self = this;
|
|
|
|
|
|
- let _serviceId = "service_" + data.layercode + data.layerorder;
|
|
|
|
- let layername = data.layername;
|
|
|
|
- let layertype = data.layertype;
|
|
|
|
-
|
|
|
|
- //透明度
|
|
|
|
- let _opacity = null;
|
|
|
|
- if (data.opacity == null) {
|
|
|
|
- _opacity = 1;
|
|
|
|
- } else {
|
|
|
|
- _opacity = Number(data.opacity);
|
|
|
|
- data.opacity = _opacity;
|
|
|
|
-
|
|
|
|
- if (_opacity == 0) {
|
|
|
|
- _opacity = 1;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //参数集
|
|
|
|
- let parameterset = data.parameterset;
|
|
|
|
- if (data.parameterset instanceof Object) {
|
|
|
|
- parameterset = data.parameterset;
|
|
|
|
- } else if (data.parameterset != "" && data.parameterset != null && data.parameterset != undefined) {
|
|
|
|
- parameterset = JSON.parse(data.parameterset);
|
|
|
|
- }
|
|
|
|
|
|
+ this.$parent.$parent.$refs.refLayer.mark = "service";
|
|
|
|
|
|
- //设置参数
|
|
|
|
- let _options = {
|
|
|
|
- id: _serviceId,
|
|
|
|
- url: data.datasource,
|
|
|
|
- alpha: _opacity
|
|
|
|
- }
|
|
|
|
|
|
+ let _serviceId = this.$parent.$parent.$refs.refLayer.mark + "_" + item.layercode + item.layerorder;
|
|
|
|
|
|
|
|
+ //移除
|
|
this.removeSplitLayerLeft();
|
|
this.removeSplitLayerLeft();
|
|
-
|
|
|
|
- switch (data.loadtype) {
|
|
|
|
- case "UrlTemplateImageryProvider": //加载URL模板服务
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.CRS) { //坐标系
|
|
|
|
- _options.CRS = parameterset.CRS;
|
|
|
|
- }
|
|
|
|
- if (parameterset.minimumLevel) { //最小层级
|
|
|
|
- _options.minimumLevel = parameterset.minimumLevel;
|
|
|
|
- }
|
|
|
|
- if (parameterset.maximumLevel) { //最大层级
|
|
|
|
- _options.maximumLevel = parameterset.maximumLevel;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- jt3d.layer.addUrlTemplateImagery(_options, function(serviceId) {
|
|
|
|
- earthAtLeft = window[_serviceId];
|
|
|
|
- earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
|
|
|
|
- });
|
|
|
|
- break;
|
|
|
|
- case "WebMapTileServiceImageryProvider": // WMTS地图服务
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.layers) { //WMTS请求的层名
|
|
|
|
- _options.layers = parameterset.layers;
|
|
|
|
-
|
|
|
|
- if (parameterset.style) { //WMTS请求的样式名
|
|
|
|
- _options.style = parameterset.style;
|
|
|
|
-
|
|
|
|
- if (parameterset.tileMatrixSetID) { //用于WMTS请求的TileMatrixSet的标识符
|
|
|
|
- _options.tileMatrixSetID = parameterset.tileMatrixSetID;
|
|
|
|
-
|
|
|
|
- if (parameterset.minimumLevel) { //最小层级
|
|
|
|
- _options.minimumLevel = parameterset.minimumLevel;
|
|
|
|
- }
|
|
|
|
- if (parameterset.maximumLevel) { //最大层级
|
|
|
|
- _options.maximumLevel = parameterset.maximumLevel;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- jt3d.layer.addWebMapTileService(_options, function(serviceId) {
|
|
|
|
- earthAtLeft = window[_serviceId];
|
|
|
|
- earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置tileMatrixSetID");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置style");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置layers");
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置layers,style,tileMatrixSetID");
|
|
|
|
- }
|
|
|
|
- break;
|
|
|
|
- case "WebMapServiceImageryProvider": //WMS地图服务
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.layers) { //WMTS请求的层名
|
|
|
|
- _options.layers = parameterset.layers;
|
|
|
|
-
|
|
|
|
- if (parameterset.minimumLevel) { //最小层级
|
|
|
|
- _options.minimumLevel = parameterset.minimumLevel;
|
|
|
|
- }
|
|
|
|
- if (parameterset.maximumLevel) { //最大层级
|
|
|
|
- _options.maximumLevel = parameterset.maximumLevel;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- jt3d.layer.addWebMapService(_options, function(serviceId) {
|
|
|
|
- earthAtLeft = window[_serviceId];
|
|
|
|
- earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
|
|
|
|
- });
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置layers");
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置layers");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.layers) {
|
|
|
|
- _options.layers = parameterset.layers;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //加载服务
|
|
|
|
- jt3d.layer.addArcGisMapServer(_options, function(serviceId) {
|
|
|
|
- earthAtLeft = window[_serviceId];
|
|
|
|
- earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case "TileMapServiceImageryProvider": // 2.5维度地图
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.minimumLevel) { //最小层级
|
|
|
|
- _options.minimumLevel = parameterset.minimumLevel;
|
|
|
|
- }
|
|
|
|
- if (parameterset.maximumLevel) { //最大层级
|
|
|
|
- _options.maximumLevel = parameterset.maximumLevel;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
|
|
|
|
- earthAtLeft = window[_serviceId];
|
|
|
|
- earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case "Cesium3DTileset": //加载3DTileset地图服务--实景
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.height) {
|
|
|
|
- _options.height = parameterset.height;
|
|
|
|
- }
|
|
|
|
- if (parameterset.alpha) {
|
|
|
|
- _options.alpha = parameterset.alpha;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //加载实景
|
|
|
|
- jt3d.layer.addCesium3DTileset(_options, function(serviceId) {
|
|
|
|
- earthAtLeft = window[_serviceId];
|
|
|
|
- earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.color) {
|
|
|
|
- _options.color = parameterset.color;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //加载白膜
|
|
|
|
- jt3d.layer.addCesium3DTilesetBm(_options, function(serviceId) {
|
|
|
|
- earthAtLeft = window[_serviceId];
|
|
|
|
- earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //图层定位
|
|
|
|
- this.$parent.$parent.$refs.refLayer.mark = "service";
|
|
|
|
- this.$parent.$parent.$refs.refLayer.setLayersLocation(jt3d, data);
|
|
|
|
|
|
+ //添加
|
|
|
|
+ this.$parent.$parent.$refs.refLayer.setLayersControl(jt3d, item, true).then(res => {
|
|
|
|
+ //定位
|
|
|
|
+ _self.$parent.$parent.$refs.refLayer.setLayersLocation(jt3d, item);
|
|
|
|
+
|
|
|
|
+ earthAtLeft = window[_serviceId];
|
|
|
|
+ earthAtLeft.splitDirection = Cesium.SplitDirection.LEFT;
|
|
|
|
+ });
|
|
},
|
|
},
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
*
|
|
*
|
|
* 右侧图层控制
|
|
* 右侧图层控制
|
|
- * @param {Object} data
|
|
|
|
|
|
+ * @param {Object} item
|
|
*/
|
|
*/
|
|
- handleClickRight(data) {
|
|
|
|
|
|
+ handleClickRight(item) {
|
|
let _self = this;
|
|
let _self = this;
|
|
|
|
|
|
- let _serviceId = "service_" + data.layercode + data.layerorder;
|
|
|
|
- let layername = data.layername;
|
|
|
|
- let layertype = data.layertype;
|
|
|
|
-
|
|
|
|
- //透明度
|
|
|
|
- let _opacity = null;
|
|
|
|
- if (data.opacity == null) {
|
|
|
|
- _opacity = 1;
|
|
|
|
- } else {
|
|
|
|
- _opacity = Number(data.opacity);
|
|
|
|
- data.opacity = _opacity;
|
|
|
|
-
|
|
|
|
- if (_opacity == 0) {
|
|
|
|
- _opacity = 1;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //参数集
|
|
|
|
- let parameterset = data.parameterset;
|
|
|
|
- if (data.parameterset instanceof Object) {
|
|
|
|
- parameterset = data.parameterset;
|
|
|
|
- } else if (data.parameterset != "" && data.parameterset != null && data.parameterset != undefined) {
|
|
|
|
- parameterset = JSON.parse(data.parameterset);
|
|
|
|
- }
|
|
|
|
|
|
+ this.$parent.$parent.$refs.refLayer.mark = "service";
|
|
|
|
|
|
- //设置参数
|
|
|
|
- let _options = {
|
|
|
|
- id: _serviceId,
|
|
|
|
- url: data.datasource,
|
|
|
|
- alpha: _opacity
|
|
|
|
- }
|
|
|
|
|
|
+ let _serviceId = this.$parent.$parent.$refs.refLayer.mark + "_" + item.layercode + item.layerorder;
|
|
|
|
|
|
|
|
+ //移除
|
|
this.removeSplitLayerRight();
|
|
this.removeSplitLayerRight();
|
|
- switch (data.loadtype) {
|
|
|
|
- case "UrlTemplateImageryProvider": //加载URL模板服务
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.CRS) { //坐标系
|
|
|
|
- _options.CRS = parameterset.CRS;
|
|
|
|
- }
|
|
|
|
- if (parameterset.minimumLevel) { //最小层级
|
|
|
|
- _options.minimumLevel = parameterset.minimumLevel;
|
|
|
|
- }
|
|
|
|
- if (parameterset.maximumLevel) { //最大层级
|
|
|
|
- _options.maximumLevel = parameterset.maximumLevel;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //添加
|
|
|
|
+ this.$parent.$parent.$refs.refLayer.setLayersControl(jt3d, item, true).then(res => {
|
|
|
|
+ //定位
|
|
|
|
+ _self.$parent.$parent.$refs.refLayer.setLayersLocation(jt3d, item);
|
|
|
|
|
|
- jt3d.layer.addUrlTemplateImagery(_options, function(serviceId) {
|
|
|
|
- //设置透明度
|
|
|
|
- jt3d.layer.setLayersStyle({
|
|
|
|
- serviceId: serviceId,
|
|
|
|
- alpha: _opacity
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- earthAtRight = window[_serviceId];
|
|
|
|
- earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
|
|
|
|
- });
|
|
|
|
- break;
|
|
|
|
- case "WebMapTileServiceImageryProvider": // WMTS地图服务
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.layers) { //WMTS请求的层名
|
|
|
|
- _options.layers = parameterset.layers;
|
|
|
|
-
|
|
|
|
- if (parameterset.style) { //WMTS请求的样式名
|
|
|
|
- _options.style = parameterset.style;
|
|
|
|
-
|
|
|
|
- if (parameterset.tileMatrixSetID) { //用于WMTS请求的TileMatrixSet的标识符
|
|
|
|
- _options.tileMatrixSetID = parameterset.tileMatrixSetID;
|
|
|
|
-
|
|
|
|
- if (parameterset.minimumLevel) { //最小层级
|
|
|
|
- _options.minimumLevel = parameterset.minimumLevel;
|
|
|
|
- }
|
|
|
|
- if (parameterset.maximumLevel) { //最大层级
|
|
|
|
- _options.maximumLevel = parameterset.maximumLevel;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- jt3d.layer.addWebMapTileService(_options, function(serviceId) {
|
|
|
|
- //设置透明度
|
|
|
|
- jt3d.layer.setLayersStyle({
|
|
|
|
- serviceId: serviceId,
|
|
|
|
- alpha: _opacity
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- earthAtRight = window[_serviceId];
|
|
|
|
- earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置tileMatrixSetID");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置style");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置layers");
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置layers,style,tileMatrixSetID");
|
|
|
|
- }
|
|
|
|
- break;
|
|
|
|
- case "WebMapServiceImageryProvider": //WMS地图服务
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.layers) { //WMTS请求的层名
|
|
|
|
- _options.layers = parameterset.layers;
|
|
|
|
-
|
|
|
|
- if (parameterset.minimumLevel) { //最小层级
|
|
|
|
- _options.minimumLevel = parameterset.minimumLevel;
|
|
|
|
- }
|
|
|
|
- if (parameterset.maximumLevel) { //最大层级
|
|
|
|
- _options.maximumLevel = parameterset.maximumLevel;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- jt3d.layer.addWebMapService(_options, function(serviceId) {
|
|
|
|
- //设置透明度
|
|
|
|
- jt3d.layer.setLayersStyle({
|
|
|
|
- serviceId: serviceId,
|
|
|
|
- alpha: _opacity
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- earthAtRight = window[_serviceId];
|
|
|
|
- earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
|
|
|
|
- });
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置layers");
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- ElMessage("请检测图层表parameterset字段是否设置layers");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.layers) {
|
|
|
|
- _options.layers = parameterset.layers;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ earthAtRight = window[_serviceId];
|
|
|
|
+ earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
|
|
|
|
+ });
|
|
|
|
|
|
- //加载服务
|
|
|
|
- jt3d.layer.addArcGisMapServer(_options, function(serviceId) {
|
|
|
|
- //设置透明度
|
|
|
|
- jt3d.layer.setLayersStyle({
|
|
|
|
- serviceId: serviceId,
|
|
|
|
- alpha: _opacity
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- earthAtRight = window[_serviceId];
|
|
|
|
- earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case "TileMapServiceImageryProvider": // 2.5维度地图
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.minimumLevel) { //最小层级
|
|
|
|
- _options.minimumLevel = parameterset.minimumLevel;
|
|
|
|
- }
|
|
|
|
- if (parameterset.maximumLevel) { //最大层级
|
|
|
|
- _options.maximumLevel = parameterset.maximumLevel;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- jt3d.layer.addTileMapServiceImagery(_options, function(serviceId) {
|
|
|
|
- //设置透明度
|
|
|
|
- jt3d.layer.setLayersStyle({
|
|
|
|
- serviceId: serviceId,
|
|
|
|
- alpha: _opacity
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- earthAtRight = window[_serviceId];
|
|
|
|
- earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case "Cesium3DTileset": //加载3DTileset地图服务--实景
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.height) {
|
|
|
|
- _options.height = parameterset.height;
|
|
|
|
- }
|
|
|
|
- if (parameterset.alpha) {
|
|
|
|
- _options.alpha = parameterset.alpha;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //加载实景
|
|
|
|
- jt3d.layer.addCesium3DTileset(_options, function(serviceId) {
|
|
|
|
- earthAtRight = window[_serviceId];
|
|
|
|
- earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
|
|
|
|
-
|
|
|
|
- //设置参数
|
|
|
|
- if (parameterset) {
|
|
|
|
- if (parameterset.color) {
|
|
|
|
- _options.color = parameterset.color;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //加载白膜
|
|
|
|
- jt3d.layer.addCesium3DTilesetBm(_options, function(serviceId) {
|
|
|
|
- earthAtRight = window[_serviceId];
|
|
|
|
- earthAtRight.splitDirection = Cesium.SplitDirection.RIGHT;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //图层定位
|
|
|
|
- this.$parent.$parent.$refs.refLayer.mark = "service";
|
|
|
|
- this.$parent.$parent.$refs.refLayer.setLayersLocation(jt3d, data);
|
|
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -691,8 +299,7 @@
|
|
}).then(res => {
|
|
}).then(res => {
|
|
//初始图层列表
|
|
//初始图层列表
|
|
this.initData = res.data
|
|
this.initData = res.data
|
|
- init().then(item => {
|
|
|
|
- })
|
|
|
|
|
|
+ init().then(item => {})
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
|