import mapConfig from "./mapConfig"; var tileset; const mapServer = { listData: [], sourceType: null, tileContent: null, init() {}, addServer(res) { this.sourceType = res.sourceType; switch (this.sourceType) { case "arcgis": this.addArcgisServer(res); break; case "geoserver": this.addGeoServer(res); break; case "tms": this.addTmsLayer(res); break; case "wfs": this.addWfsLayer(res); break; case "Tileset": this.addTileSetLayer(res); break; case "PointWfs": this.addPointWfsLayer(res); break; case "PolylineWfs": this.addPolylineWfsLayer(res); break; case "PolylineWfs2": this.addPolylineWfsLayer(res); break; case "PolygonWfs": this.addpolygonWfsLayer(res); break; } }, addpolygonWfsLayer(res) { var layer = earthCtrl.factory.createWfsLayer("polygon", { urls: res.url, layer: res.layer, width: 1, outlineColor: "#FF0000", alpha: 0.2, height: 500, color: "#FF0000" }); this.listData.push({ layer: layer, type: this.sourceType, layerId: res.id ? res.id : earthCtrl.factory.createUUID() }); }, addPolylineWfsLayer(res) { var layer = earthCtrl.factory.createWfsLayer("polyline", { urls: res.url, layer: res.layer, width: 2, color: res.color, classificationType: false }); this.listData.push({ layer: layer, type: this.sourceType, layerId: res.id ? res.id : earthCtrl.factory.createUUID() }); }, addPointWfsLayer(res) { var layer = earthCtrl.factory.createWfsLayer("point", { urls: res.url, layer: res.layer, text: res.text, color: res.color, scale: 2, blod: true, disableDepthTestDistance: Infinity }); this.listData.push({ layer: layer, type: this.sourceType, layerId: res.id ? res.id : earthCtrl.factory.createUUID() }); }, remoServer(res) { for (var i = 0; i < this.listData.length; i++) { const obj = this.listData[i]; if (obj.type == res.sourceType) { if ( obj.type == "PointWfs" || obj.type == "PolylineWfs" || obj.type == "PolylineWfs2" || obj.type == "PolygonWfs" ) { obj.layer.destroy(); } else { obj.layer.removeFromMap(); } this.listData.splice(i, 1); i = i - 1; } } }, addTileSetLayer(res) { // const tileset = earthCtrl.factory.create3DTilesets({ // url: res.url // }); var tileset = Viewer.scene.primitives.add( new Cesium.Cesium3DTileset({ url: res.url }) ); tileset.name = res.name; // const tileset = new Cesium.Cesium3DTileset({ // url: res.url // }); // earthCtrl.primitives.add(tileset); this.listData.push({ layer: tileset, type: this.sourceType, layerId: res.id, name: res.name }); // console.log('tileset',tileset); // earthCtrl.userScene.flyTo(tileset); }, traverseVisibleTiles() { tileset.readyPromise.then((tileset) => { tileset.tileVisibility.forEachTile(function (tile) {}); }); }, addWfsLayer(res) { const layer = earthCtrl.factory.createWfsLayer("polygon", { urls: res.url, layer: res.layer, outlineColor: res.outlineColor, alpha: res.alpha }); this.listData.push({ layer: layer, type: this.sourceType }); }, addTmsLayer(res) { const layer = earthCtrl.factory.createImageryLayer({ sourceType: "tms", url: res.url }); this.listData.push({ layer: layer, type: this.sourceType }); }, addArcgisServer(res) { const layer = earthCtrl.factory.createImageryLayer({ sourceType: "arcgis", url: res.url }); this.listData.push({ layer: layer, type: this.sourceType }); }, addGeoServer(res) { const layer = earthCtrl.factory.createWfsLayer("polygon", { urls: res.url, layer: res.layerF, color: "#de3", extrudedHeight: 30 // 拉伸高度,无拉伸高度则为贴地面 }); this.listData.push({ layer: layer, type: this.sourceType }); } }; export default mapServer;