| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 17:00:30 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-03-30 15:46:06 |
| | | * @LastEditTime: 2023-03-30 16:23:23 |
| | | * @FilePath: \srs-police-affairs\src\components\map\index.vue |
| | | * @Description: 公用地图组件 |
| | | * |
| | |
| | | // global.viewer.addTerrain(terrain) |
| | | |
| | | // 内网 |
| | | // that.switchImg() |
| | | that.switchImg() |
| | | |
| | | // that.highOrLightChange('light') |
| | | |
| | | // 外网 |
| | | |
| | | // global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c', |
| | | // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | // format: 'image/jpeg', |
| | | // show: true, |
| | | // maximumLevel: 18 |
| | | // }) |
| | | // ) |
| | | global.viewer.imageryLayers.addImageryProvider( |
| | | new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c', |
| | | subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | format: 'image/jpeg', |
| | | show: true, |
| | | maximumLevel: 18 |
| | | }) |
| | | ) |
| | | |
| | | // 设置地图初始位置,角度等 |
| | | global.viewer.camera.setView({ |
| | |
| | | }) |
| | | |
| | | // 原生Cesium加载多边体 |
| | | |
| | | |
| | | // let floorPositions = positions.reduce((prev, curr, index, arr) => { |
| | | // curr.forEach(item => { |
| | | // prev.push(item) |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | // 获取当前地图中心的经纬度 |
| | | getSceneCenterPosition (viewer) { |
| | | let centerResult = viewer.camera.pickEllipsoid( |
| | | new global.DC.Namespace.Cesium.Cartesian2( |
| | | viewer.canvas.clientWidth / 2, |
| | | viewer.canvas.clientHeight / 2, |
| | | ), |
| | | ) |
| | | let curPosition = global.DC.Namespace.Cesium.Ellipsoid.WGS84.cartesianToCartographic(centerResult) |
| | | let curLongitude = (curPosition.longitude * 180) / Math.PI |
| | | let curLatitude = (curPosition.latitude * 180) / Math.PI |
| | | return { |
| | | lon: curLongitude, |
| | | lat: curLatitude, |
| | | } |
| | | }, |
| | | |
| | | overLookClick () { |
| | | const position = this.getSceneCenterPosition(global.viewer) |
| | | |
| | | global.viewer.camera.setView({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | 118.04, 28.46938164123123, 60000 |
| | | position.lon, position.lat, global.viewer.camera.positionCartographic.height * 1.5 |
| | | ), |
| | | orientation: { |
| | | // 指向 |