From 801f2d76b4b6f41247ebe33da59a0981c08bf63b Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期六, 18 三月 2023 14:03:20 +0800 Subject: [PATCH] 数据发布预览 --- src/components/preview_map.vue | 67 +++++++++++++++++++++++++-------- 1 files changed, 50 insertions(+), 17 deletions(-) diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue index 25bd220..cc37652 100644 --- a/src/components/preview_map.vue +++ b/src/components/preview_map.vue @@ -23,12 +23,12 @@ methods: { init3DMap() { //鍦板浘鍒濆鍖� - window.sg = new SmartEarth.SGWorld("mapdiv", { + window.sgworld = new SmartEarth.SGWorld("mapdiv", { url: SmartEarthRootUrl + "Workers/image/earth.jpg", licenseServer: window.sceneConfig.licenseServer, }); - window.Viewer = window.sg._Viewer; + window.Viewer = window.sgworld._Viewer; // Viewer.camera.flyTo({ // destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000), @@ -45,43 +45,76 @@ //鏄剧ずfps Viewer.scene.debugShowFramesPerSecond = false; //瀵艰埅鎺т欢 - window.sg.navControl("nav", false); + window.sgworld.navControl("nav", false); //姣斾緥灏� - window.sg.navControl("scale", false); + window.sgworld.navControl("scale", false); //寮�鍚繁搴︽娴� // sg.Analysis.depthTestAgainstTerrain(true) Viewer.scene.globe.depthTestAgainstTerrain = true; - var option = { - url: window.sceneConfig.SGUrl, - layerName: window.sceneConfig.mptName, - requestVertexNormals: true, - }; - sg.Creator.sfsterrainprovider("", option, "", true, ""); - window.elevationTool = new SmartEarth.ElevationTool(window.sg); - elevationTool.setContourColor("#F1D487"); + // window.elevationTool = new SmartEarth.ElevationTool(window.sg); + // elevationTool.setContourColor("#F1D487"); + if (this.$store.state.previewLayer) { var res = this.$store.state.previewLayer; - if (res.layer.indexOf('.png')) { - console.log(res.layer) + + if (res.url.indexOf('.png') != -1) { var wkt = this.$wkt.parse(res.geom); var height = this.getHeight(wkt.coordinates[2]) - console.log(wkt) window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider( new Cesium.UrlTemplateImageryProvider({ - url: res.layer, + url: res.url, maximumLevel: 18 }) ); - debugger Viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height), }); + } else if (res.url.indexOf('.json') != -1) { + var tileset = Viewer.scene.primitives.add( + new Cesium.Cesium3DTileset({ + url: res.url, //192.168.20.106,to4 + maximumScreenSpaceError: 64, // 鏈�澶у睆骞曠┖闂撮敊璇細16 + maximumMemoryUsage: 768, // 鏈�澶у唴瀛橈細512 + dynamicScreenSpaceError: true, // 鍑忓皯绂荤浉鏈鸿緝杩滅殑灞忓箷绌洪棿閿欒锛歠alse + skipLevelOfDetail: true, // 鍦ㄩ亶鍘嗘椂鍊欒烦杩囪鎯咃細false + }) + ); + tileset.readyPromise.then((tileset) => { + tileset.id = res.cnName; + tileset.layerId = res.id; + this.tileSet(tileset, 50) + Viewer.flyTo(tileset); + }); + } else { + + Viewer.imageryLayers.removeAll(); + var url = res.url.split(';') + console.log(url) + + sgworld.Creator.createImageryProvider('mpt褰卞儚', "wms", { + url: url[0], + layers: url[1] + }, "0", undefined, true, ""); + } } }, + tileSet(tileset, height) { + //3dtile妯″瀷鐨勮竟鐣岀悆浣� + var boundingSphere = tileset.boundingSphere; + //杩崱灏旂┖闂寸洿瑙掑潗鏍�=>鍦扮悊鍧愭爣锛堝姬搴﹀埗锛� + var cartographic_original = Cesium.Cartographic.fromCartesian(boundingSphere.center); + //鍦扮悊鍧愭爣锛堝姬搴﹀埗锛�=>杩崱灏旂┖闂寸洿瑙掑潗鏍� + var Cartesian3_original = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, cartographic_original.height); + var Cartesian3_offset = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, height); + //鑾峰緱鍦伴潰鍜宱ffset鐨勮浆鎹� + var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3()); + //淇敼妯″瀷鐭╅樀 + tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); + }, getHeight(level) { if (level > 0 && level < 23) { return this.levelArray[level] -- Gitblit v1.9.3