| | |
| | | var addLayers = [] |
| | | var addPlotLayers = [] |
| | | |
| | | var siteEntitylayers = null |
| | | var sitePositionsArray = [] |
| | | |
| | | export default { |
| | | name: 'mapBox', |
| | | |
| | |
| | | } |
| | | }) |
| | | |
| | | // global.viewer.scene.globe.depthTestAgainstTerrain = true |
| | | |
| | | farmRegionLayer = new global.DC.VectorLayer('farmRegionLayer') |
| | | global.viewer.addLayer(farmRegionLayer) |
| | | |
| | |
| | | |
| | | farmLogoLayer = new global.DC.HtmlLayer('farmLogoLayer') |
| | | global.viewer.addLayer(farmLogoLayer) |
| | | |
| | | siteEntitylayers = new global.DC.VectorLayer('siteEntitylayers') |
| | | global.viewer.addLayer(siteEntitylayers) |
| | | |
| | | if (global.DC.Namespace.Cesium.FeatureDetection.supportsImageRenderingPixelated()) { // 判断是否支持图像渲染像素化处理 |
| | | global.viewer.setOptions({ |
| | |
| | | addPlotLayers.push({ center, name: item.landName }) |
| | | }, |
| | | |
| | | addSiteEntity (item, url) { |
| | | const that = this |
| | | |
| | | const center = [Number(item.lon), Number(item.lat)] |
| | | |
| | | const label = new global.DC.Label(new global.DC.Position(Number(item.lon), Number(item.lat)), item.name) |
| | | |
| | | label.attrParams = item |
| | | |
| | | label.setStyle({ |
| | | fillColor: global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 1, 190, 254, 255 |
| | | ), |
| | | showBackground: true, |
| | | backgroundColor: global.DC.Namespace.Cesium.Color.fromBytes( |
| | | 0, 0, 0, 145 |
| | | ), // 背景颜色 |
| | | distanceDisplayCondition: { |
| | | near: 0, // 最近距离 |
| | | far: 3000 // 最远距离 |
| | | }, // 根据距离设置可见 |
| | | font: '12px', |
| | | pixelOffset: { x: 0, y: -26 } // 偏移像素 |
| | | }) |
| | | |
| | | label.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | that.$parent.plotDetailsPopupShow(e.overlay.attrParams) |
| | | }) |
| | | |
| | | const billboard = new global.DC.Billboard(new global.DC.Position(Number(item.lon), Number(item.lat)), url) |
| | | billboard.size = [18, 18] |
| | | billboard.attrParams = item |
| | | |
| | | billboard.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | that.$parent.plotDetailsPopupShow(e.overlay.attrParams) |
| | | }) |
| | | |
| | | siteEntitylayers.addOverlay(label) |
| | | siteEntitylayers.addOverlay(billboard) |
| | | |
| | | sitePositionsArray.push({ center, name: item.name, id: item.id }) |
| | | }, |
| | | |
| | | setCenter (name) { |
| | | let center |
| | | addLayers.forEach(item => { |
| | |
| | | if (center == '') { |
| | | this.$message({ |
| | | message: '当前农场暂未绘制', |
| | | type: 'warning' |
| | | type: 'warning' |
| | | }) |
| | | return |
| | | } |
| | |
| | | }) |
| | | }, |
| | | |
| | | setSiteCenter (name) { |
| | | let center |
| | | sitePositionsArray.forEach(item => { |
| | | if (name == item.name) { |
| | | center = item.center |
| | | } |
| | | }) |
| | | |
| | | console.log(name, center) |
| | | |
| | | global.viewer.camera.flyTo({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | center[0], center[1], 500.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0), |
| | | // 视角 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(-90), |
| | | roll: 0.0 |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 经纬度测算中心位置 |
| | | getCenter (arr) { |
| | | let centerLonLat = [] |