| | |
| | | // that.$store.commit("MSET_DC", DC); |
| | | global.viewer.popup.hide() |
| | | |
| | | // const baselayer = DC.ImageryLayerFactory.createArcGisImageryLayer({ |
| | | // url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", |
| | | // }); |
| | | window.baselayer = global.DC.ImageryLayerFactory.createImageryLayer( |
| | | global.DC.ImageryType.XYZ, |
| | | { |
| | | // url: 'https://webmap-tile.sf-express.com/MapTileService/rt?x={col}&y={row}&z={level}' |
| | | // 白模型↓ |
| | | // const layer = new DC.TilesetLayer("layer"); |
| | | // global.viewer.addLayer(layer); |
| | | // const tileset = new DC.Tileset( |
| | | // "http://resource.dvgis.cn/data/3dtiles/ljz/tileset.json" |
| | | // ); |
| | | // const style = new DC.TilesetStyle(); |
| | | // style.color = { |
| | | // conditions: [ |
| | | // ["${Height} >= 300", "rgba(45, 0, 75, 0.5)"], |
| | | // ["${Height} >= 200", "rgb(102, 71, 151)"], |
| | | // ["${Height} >= 100", "rgb(170, 162, 204)"], |
| | | // ["${Height} >= 50", "rgb(224, 226, 238)"], |
| | | // ["${Height} >= 25", "rgb(252, 230, 200)"], |
| | | // ["${Height} >= 10", "rgb(248, 176, 87)"], |
| | | // ["${Height} >= 5", "rgb(198, 106, 11)"], |
| | | // ["true", "rgb(127, 59, 8)"], |
| | | // ], |
| | | // }; |
| | | |
| | | url: 'https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal' // 行政区划 |
| | | } |
| | | // global.viewer.use(new DC.Measure()); |
| | | |
| | | // tileset.setStyle(style); |
| | | // layer.addOverlay(tileset); |
| | | // global.viewer.flyTo(tileset); |
| | | // 白模型↑ |
| | | |
| | | // 精细模型↓ |
| | | window.tilesetLayer = new global.DC.TilesetLayer('tilesetLayer') |
| | | global.viewer.addLayer(window.tilesetLayer) |
| | | window.tileset = new global.DC.Tileset('/mx/tileset.json', { |
| | | luminanceAtZenith: 0.5 |
| | | }) |
| | | |
| | | // window.tilesetLayer.addOverlay(window.tileset); |
| | | // window.tilesetLayer.show = false; |
| | | |
| | | window.silhouetteBlue = |
| | | global.DC.Namespace.Cesium.PostProcessStageLibrary.createEdgeDetectionStage() |
| | | window.silhouetteBlue.uniforms.color = |
| | | global.DC.Namespace.Cesium.Color.fromBytes(9, 162, 40) |
| | | window.silhouetteBlue.uniforms.length = 0.01 |
| | | window.silhouetteBlue.selected = [] |
| | | |
| | | global.viewer.scene.postProcessStages.add( |
| | | global.DC.Namespace.Cesium.PostProcessStageLibrary.createSilhouetteStage( |
| | | [window.silhouetteBlue] |
| | | ) |
| | | ) |
| | | |
| | | window.highlighted = { |
| | | feature: undefined, |
| | | originalColor: new global.DC.Namespace.Cesium.Color() |
| | | } |
| | | |
| | | window.selected = { |
| | | feature: undefined, |
| | | originalColor: new global.DC.Namespace.Cesium.Color() |
| | | } |
| | | |
| | | // 点击事件 |
| | | window.tileset.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | global.viewer.scene.globe.depthTestAgainstTerrain = false |
| | | // console.log(e); |
| | | |
| | | // global.viewer.flyToPosition( |
| | | // new global.DC.Position(115.87186406, 28.74449337, 1800, 0, 45, 0) |
| | | // ); |
| | | |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.wgs84Position.lng, e.wgs84Position.lat], |
| | | { |
| | | name: e.overlay.attr.name, |
| | | address: e.layer._id, |
| | | introduce: e.overlay.attr.id |
| | | // data: e, |
| | | } |
| | | ) |
| | | // return; |
| | | // 高亮 |
| | | window.silhouetteBlue.selected = [] |
| | | |
| | | if (global.DC.Namespace.Cesium.defined(window.highlighted.feature)) { |
| | | window.highlighted.feature.color = window.highlighted.originalColor |
| | | window.highlighted.feature = undefined |
| | | } |
| | | |
| | | if (e.feature !== window.selected.feature) { |
| | | window.silhouetteBlue.selected = [e.feature] |
| | | |
| | | window.highlighted.feature = e.feature |
| | | |
| | | global.DC.Namespace.Cesium.Color.clone( |
| | | e.feature.color, |
| | | window.highlighted.originalColor |
| | | ) |
| | | e.feature.color = global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 155, |
| | | 255, |
| | | 175 |
| | | ) |
| | | } |
| | | }) |
| | | |
| | | // 移动事件 |
| | | // window.tileset.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => { |
| | | // window.silhouetteBlue.selected = []; |
| | | |
| | | // if (global.DC.Namespace.Cesium.defined(window.highlighted.feature)) { |
| | | // window.highlighted.feature.color = window.highlighted.originalColor; |
| | | // window.highlighted.feature = undefined; |
| | | // } |
| | | |
| | | // if (e.feature !== window.selected.feature) { |
| | | // window.silhouetteBlue.selected = [e.feature]; |
| | | |
| | | // window.highlighted.feature = e.feature; |
| | | |
| | | // global.DC.Namespace.Cesium.Color.clone( |
| | | // e.feature.color, |
| | | // window.highlighted.originalColor |
| | | // ); |
| | | // e.feature.color = global.DC.Namespace.Cesium.Color.fromBytes( |
| | | // 155, |
| | | // 255, |
| | | // 175 |
| | | // ); |
| | | // } |
| | | // }); |
| | | // window.tilesetLayer["changesilhouetteBlue"] = () => { |
| | | // window.silhouetteBlue.selected = []; |
| | | // }; |
| | | // window.tilesetLayer.show = false; |
| | | // 精细模型↑ |
| | | |
| | | // 2.5D贴图↓ |
| | | window.usetowpointfive = () => { |
| | | window.provider = |
| | | // new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({ |
| | | // url: "http://www.tdtfz.com/OneMapServer/rest/services/fzsw2019/MapServer/WMTS/tile/1.0.0/fzsw2019/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}", |
| | | // layer: "fzsw2019", |
| | | // style: "default", |
| | | // tileMatrixSetID: "default028mm", |
| | | // format: "image/jpgpng", |
| | | // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(), |
| | | // maximumLevel: 19, |
| | | // tileMatrixLabels: [ |
| | | // "0", |
| | | // "1", |
| | | // "2", |
| | | // "3", |
| | | // "4", |
| | | // "5", |
| | | // "6", |
| | | // "7", |
| | | // "8", |
| | | // "9", |
| | | // "10", |
| | | // "11", |
| | | // "12", |
| | | // "13", |
| | | // "14", |
| | | // "15", |
| | | // "16", |
| | | // "17", |
| | | // "18", |
| | | // "19", |
| | | // ], |
| | | // }); |
| | | // new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({ |
| | | // url: "http://arcgis.jxpskj.com:6080/arcgis/rest/services/PingXiang25DMapDN/MapServer", |
| | | // }); |
| | | new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | url: '/wp/{z}/{x}/{y}.png', |
| | | fileExtension: 'png' |
| | | }) |
| | | return global.viewer.imageryLayers.addImageryProvider(window.provider) |
| | | } |
| | | |
| | | window.newLayer = window.usetowpointfive() |
| | | // 2.5d贴图事件 |
| | | |
| | | window.layerGroup = new global.DC.LayerGroup('modelBox') |
| | | global.viewer.addLayerGroup(window.layerGroup) |
| | | |
| | | window.areaLayer = new global.DC.VectorLayer('areaLayer') |
| | | window.layerGroup.addLayer(window.areaLayer) |
| | | axios |
| | | .get( |
| | | 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/lxxqwxq/MapServer/0/query?where=1%3D1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&returnTrueCurves=false&resultOffset=&resultRecordCount=&f=pjson' |
| | | ) |
| | | .then((resultData) => { |
| | | resultData.data.features.forEach((item) => { |
| | | item.geometry.rings[0].forEach((it) => { |
| | | it = it.join(',') |
| | | }) |
| | | |
| | | item.geometry.rings[0] = item.geometry.rings[0].join(';') |
| | | |
| | | window.polygon = new global.DC.Polygon(item.geometry.rings[0]) |
| | | window.polygon.attr = item.attributes |
| | | |
| | | window.polygon.setStyle({ |
| | | material: global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 255, |
| | | 255, |
| | | 255, |
| | | 1 |
| | | ) |
| | | }) |
| | | |
| | | window.areaLayer.addOverlay(window.polygon) |
| | | }) |
| | | |
| | | window.areaLayer.show = true |
| | | }) |
| | | that.$store.commit('MSET_areaLayer', window.areaLayer) |
| | | |
| | | // var select = { |
| | | // overlay: undefined, |
| | | // color: undefined, |
| | | // }; |
| | | // 地图点击事件 |
| | | global.viewer.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | // console.log(e); |
| | | if (e.overlay != undefined && e.layer.id == 'areaLayer') { |
| | | if (window.select.overlay != undefined) { |
| | | if (e.overlay != window.select.overlay) { |
| | | window.select.overlay.setStyle({ |
| | | material: window.select.color, |
| | | outline: false |
| | | }) |
| | | |
| | | that.$store.commit('mset_changeSelect', [undefined, undefined]) |
| | | } |
| | | } |
| | | |
| | | if (window.select.overlay == undefined) { |
| | | window.select.overlay = e.overlay |
| | | |
| | | window.select.color = e.overlay._style.material |
| | | window.select.overlay.setStyle({ |
| | | outline: true, |
| | | outlineColor: global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 3, |
| | | 255, |
| | | 13, |
| | | 255 |
| | | ), // 边框颜色 |
| | | outlineWidth: 10, // 边框大小, |
| | | height: 0.01, |
| | | material: global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 108, |
| | | 245, |
| | | 113, |
| | | 158 |
| | | ) |
| | | }) |
| | | } |
| | | |
| | | // 如果是地图点击建筑,调用接口查详情 |
| | | const ids = |
| | | e.overlay.attr['楼栋号'] == '8栋' |
| | | ? '9栋' |
| | | : e.overlay.attr['楼栋号'] == '9栋' |
| | | ? '8栋' |
| | | : e.overlay.attr['楼栋号'] |
| | | const eIntlat = [ |
| | | e.wgs84SurfacePosition.lng, |
| | | e.wgs84SurfacePosition.lat |
| | | ] |
| | | getBuildClock({ |
| | | mechanismname: '香琴湾' + ids |
| | | }).then((res) => { |
| | | const item = res.data.data |
| | | // data.query.bgImg = ds.mechanismname; |
| | | // data.query.name = ds.tpurl; |
| | | // data.query.panoramaurl = ds.panoramaurl; |
| | | // data.query.bgImg = ds.tpurl; |
| | | // data.query.bgImg = ds.tpurl; |
| | | const useData = { |
| | | name: item.mechanismname, |
| | | lntLat: eIntlat, |
| | | alt: item.gd, |
| | | heading: item.heading, |
| | | pitch: item.pitch, |
| | | roll: item.roll, |
| | | bgImg: item.tpurl, |
| | | QRImg: item.codeurl, |
| | | websiteUrl: item.websiteurl, |
| | | telePhone: item.telephone, |
| | | address: item.address, |
| | | introduce: item.introduce, |
| | | video: item.videourl, |
| | | buts: ['定位', '实景', '图集'], |
| | | panoramaurl: item.panoramaurl, // 全景 |
| | | fromTo: 'mapClick' |
| | | } |
| | | // 定制化窗体 |
| | | // console.log(item, useData, "111111"); |
| | | // return; |
| | | that.openPopupS({}, eIntlat, useData) |
| | | }) |
| | | } else { |
| | | if (window.select.overlay != undefined) { |
| | | window.select.overlay.setStyle({ |
| | | material: window.select.color, |
| | | outline: false |
| | | }) |
| | | |
| | | that.$store.commit('mset_changeSelect', [undefined, undefined]) |
| | | } |
| | | } |
| | | }) |
| | | |
| | | // 2.5D贴图↑ |
| | | // let startPoint; |
| | | if (true) { |
| | | window.startPointFn = () => { |
| | | window.doit2 = (int, h) => { |
| | | global.viewer.camera.setView({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | // 114.0351, |
| | | // 27.6314, |
| | | // 200.0 |
| | | int[0], |
| | | int[1], |
| | | int[2] |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(h[0]), |
| | | // 视角 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(h[1]), |
| | | roll: h[2] |
| | | } |
| | | }) |
| | | } |
| | | that.dimension == '2.5D' |
| | | ? window.doit2( |
| | | [that.mapCenter[0], that.mapCenter[1], that.frislayertHeight], |
| | | // [114.04062292, 27.62666834, 220.0], |
| | | [ |
| | | that.dimensionData.heading, |
| | | that.dimensionData.pitch, |
| | | that.dimensionData.roll |
| | | ] |
| | | ) |
| | | : window.doit2([114.0351, 27.6314, 300.0], [108, -26.46, 0.0]) |
| | | // : doit([116.39038494750986, 39.902393222208644, 330.0]); |
| | | // doit("建模"); |
| | | } |
| | | } else { |
| | | // startPoint(1); |
| | | } |
| | | |
| | | // 传递默认位置 |
| | | // that.$store.commit("MSET_MORENWEIZHI", startPoint); |
| | | // let position = Cesium.Cartesian3.fromDegrees(108, 25, 0); //中心点位置 |
| | | // let cameraLimit = new xt3d.CameraDominate.CameraLimit( |
| | | // global.viewer, |
| | | // position, |
| | | // { |
| | | // radius: 2000, |
| | | // debugExtent: true, |
| | | // } |
| | | // ); |
| | | |
| | | // const currentViewRect = global.viewer.camera.computeViewRectangle();//东南西北数据 |
| | | // console.log(currentViewRect, 78); |
| | | |
| | | // 瀑布流↓ |
| | | window.wallLayer = new global.DC.VectorLayer('wallLayer') |
| | | // global.viewer.addLayer(wallLayer); |
| | | // var arr = that.wallArr; |
| | | // arr.forEach((item) => { |
| | | // item = item.join(","); |
| | | // }); |
| | | // arr = arr.join(";"); |
| | | // const wall = new global.DC.Wall(arr); |
| | | // wall.setStyle({ |
| | | // material: new global.DC.WallTrailMaterialProperty({ |
| | | // color: global.DC.Namespace.Cesium.Color.fromBytes(0, 142, 255, 150), |
| | | // // color: global.DC.Color.DEEPSKYBLUE, |
| | | // speed: 4, |
| | | // }), |
| | | // }); |
| | | // wallLayer.addOverlay(wall); |
| | | |
| | | // global.viewer.use(new global.DC.Measure()); |
| | | // 瀑布流↑ |
| | | |
| | | // 传入store |
| | | // that.$store.commit("MSET_MODEOLS", { |
| | | // tilesetLayer: window.tilesetLayer, |
| | | // // tileset: window.tileset, |
| | | // newLayer: window.newLayer, |
| | | // wallLayer: window.wallLayer, |
| | | // usetowpointfive: window.usetowpointfive, |
| | | // }); |
| | | |
| | | // 飞入起始点 |
| | | // that.$store.dispatch("mapFlyTo", { |
| | | // lntLat: [115.87186406, 28.74449337, 1200], |
| | | // heading: 0, |
| | | // pitch: -45, |
| | | // roll: 0, |
| | | // noOpen: true, |
| | | // }); |
| | | // 地图渲染完成执行srore中MSET_CREADE |
| | | // that.$store.dispatch("MSET_CREADE"); |
| | | |
| | | global.viewer.compass.enable = false |
| | | global.viewer.zoomController.enable = true |
| | | global.viewer.locationBar.enable = false |
| | | global.viewer.distanceLegend.enable = false |
| | | |
| | | // 判断默认维度 |
| | | // 原本默认是2.5d 改为3d默认时做出改变 |
| | | if (that.dimension == '2.5D') { |
| | | that.$store.commit('set_frislayertHeight', that.frislayertHeight) // 送入默认弹窗高度 |
| | | that.$store.commit('set_zoomRange', [ |
| | | that.onelayerNum, |
| | | // that.forlayerNum ? that.forlayerNum : that.threelayerNum, |
| | | that.sixlayerNum |
| | | ? that.sixlayerNum |
| | | : that.fivelayerNum |
| | | ? that.fivelayerNum |
| | | : that.forlayerNum, |
| | | that.useSuofang, |
| | | that.addOthers |
| | | ]) // 送入移动端缩放范围 |
| | | that.$store.commit('MSET_DIMENSION', '2.5D') // 切换2.5D设置 |
| | | } else if (that.dimension == '3D') { |
| | | // setTimeout((res) => { |
| | | // that.$store.dispatch("mapFlyTo", { |
| | | // lntLat: [111.25036579, 34.83767277, 11443175.85], |
| | | // heading: 0, |
| | | // pitch: -90, |
| | | // roll: 0, |
| | | // noOpen: true, |
| | | // fn: function () { |
| | | // global.viewer.flyTo(window.tileset); |
| | | // global.viewer.flyTo(provider); |
| | | // 飞入起始点 |
| | | // that.$store.dispatch("mapFlyTo", { |
| | | // lntLat: [115.87186406, 28.74449337, 1200], |
| | | // heading: 0, |
| | | // pitch: -45, |
| | | // roll: 0, |
| | | // noOpen: true, |
| | | // }); |
| | | |
| | | // startPoint(); |
| | | that.$store.commit('MSET_DIMENSION', '3D') // 切换3D设置 |
| | | // }, |
| | | // }); |
| | | // }, 2000); |
| | | } |
| | | global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 1000 |
| | | global.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000 |
| | | // 渲染后操作 |
| | | setTimeout(() => { |
| | | window.butbut() |
| | | // return; |
| | | |
| | | // 判断是否有url参数 |
| | | // console.log(that.urlParameterData); |
| | | if (typeof that.urlParameterData != 'string') { |
| | | // console.log(that.urlParameterData); |
| | | that.$store.commit('initurlParameterLayer') // 初始化自定义标签图层 |
| | | if (that.urlParameterData.methods == 'goto') { |
| | | // url有定位的参数 |
| | | // alert(that.urlParameterData.jd); |
| | | // alert(that.urlParameterData.wd); |
| | | // 创建标记 |
| | | const dsa = { |
| | | list: [ |
| | | { |
| | | // url: 'https://webmap-tile.sf-express.com/MapTileService/rt?x={col}&y={row}&z={level}' |
| | | |
| | | url: 'https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal' // 行政区划 |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | // global.viewer.addBaseLayer(baselayer, { |
| | | // iconUrl: "examples/images/icon/img.png", |
| | | // name: "影像", |