123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387 |
- <template>
- <div v-show="flag">
- <datePicker @dateChange="dateChange"></datePicker>
- <ser-center></ser-center>
- <GKZB ref="gkzb_ref"/>
- <BJXM />
- <TDSC />
- <HYSY ref="hysy_ref" />
- <TDSY />
- <GDBH ref="gdbh_ref" />
- <STXF ref="stxf_ref" />
- <WPJG ref="wpjg_ref" />
- </div>
- </template>
- <script>
- //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
- import serCenter from './cockpitNew1/serCenter';
- import GKZB from './cockpitNew1/gkzb';
- import TDSC from './cockpitNew1/tdsc';
- import HYSY from './cockpitNew1/hysy';
- import TDSY from './cockpitNew1/tdsy';
- import BJXM from './cockpitNew1/bjxm';
- import GDBH from './cockpitNew1/gdbh';
- import STXF from './cockpitNew1/stxf';
- import WPJG from './cockpitNew1/wpjg';
- import datePicker from './cockpitNew1/datePicker.vue';
- import xzqh from "../../static/data/460200_full.json";
- import SerCenter from './cockpitNew1/serCenter.vue';
- import { cockpitInfo } from '@/api/cockpit'
- export default {
- components: { serCenter, GKZB, BJXM, TDSC, HYSY, TDSY, GDBH, STXF, WPJG, datePicker, SerCenter },
- data() {
- return {
- params: {
- beginTime: '',
- endTime: '',
- id: 4602,
- },
- flag: true,
- xzqh_color_click: "rgba(46, 177, 251, 0.6)",
- xzqh_color: "rgba(10, 95, 152, 0.5)",
- };
- },
- //监听属性 类似于data概念
- computed: {},
- //监控data中的数据变化
- watch: {},
- //方法集合
- methods: {
- switch() {
- this.flag = !this.flag;
- },
- setDatas() {
- this.$refs.gdbh_ref.setData({ id: this.params.id });
- this.$refs.stxf_ref.setData({ id: this.params.id });
- this.$refs.wpjg_ref.setData(this.params);
- },
- dateChange(date) {
- this.params.beginTime = date[0]
- this.params.endTime = date[1]
- this.setDatas()
- },
- async hysyq(address) {
- // 选中xzqh查询
- let obj = {
- beginTime: store.state.cockpit_date[0],
- endTime: store.state.cockpit_date[1],
- jscType: 'jsc_hysyq_ztsh',
- id: address
- };
- let data = await cockpitInfo(obj);
- let obg_text = {
- xzqhdm_number: data.data[0].xzqhdm_number,
- zhmj: data.data[0].zhmj == undefined ? 0 : data.data[0].zhmj,
- }
- obg_text.zhmj == null ? 0 : obg_text.zhmj;
- store.setCockpitHysyText(obg_text);
- // 图表数据
- let obj_echart = {
- beginTime: store.state.cockpit_date[0],
- endTime: store.state.cockpit_date[1],
- jscType: 'jsc_hysyq_yelx',
- id: address
- };
- let data_echart = await cockpitInfo(obj_echart);
- let obg_echart = {
- x: data_echart.data.map(item => item.yhlx_name),
- bar: data_echart.data.map(item => item.zhmj)
- }
- console.log(obg_echart.x.length == 0, "obg_echart.x.length");
- obg_echart.x.length == 0 ? obg_echart.x = ['渔业基础设施用海', '开放式养殖用海', '旅游基础设施用海', '浴场用海',
- '游乐场用海'] : obg_echart.x = obg_echart.x;
- obg_echart.bar.length == 0 ? obg_echart.bar = [0, 0, 0, 0, 0,] : obg_echart.bar = obg_echart.bar;
- store.setCockpitHysyEchart(obg_echart);
- this.$refs.hysy_ref["getRenKou"]();
- // getRenKou();
- console.log(address, "address");
- },
- hysyq_xzqh() {
- const that = this;
- that.$refs.hysy_ref["label_data"]();
- that.$refs.hysy_ref["echart_data"]();
- },
- async gkzb_xzqh(address) {
- let obj = {
- // beginTime: store.state.cockpit_date[0],
- // endTime: store.state.cockpit_date[1],
- jscType: 'jsc_gkzb_ztgu_stbh',
- id: address
- };
- let data = await cockpitInfo(obj);
- let obj_yjjbntmj = {
- jscType: 'jsc_gdbh_ztgh_nt',
- id: address
- };
- let obj_yjjbntmj_data = await cockpitInfo(obj_yjjbntmj);
- // 永久基本农田保护面积
- // that.yjjbntmj = obj_yjjbntmj_data.data[0].yjjbntmj;
- let obj_kfbjmj = {
- jscType: 'jsc_gkzb_ztgh_kfbj',
- id: address
- };
- let obj_kfbjmj_data = await cockpitInfo(obj_kfbjmj);
- // // 城市开发边界
- // that.kfbjmj = obj_kfbjmj_data.data[0].kfbjmj;
- // // 覆盖城镇开发边界
- // that.bfb = obj_kfbjmj_data.data[0].bfb * 100;
- store.setCockpitGkzb({
- mj: data.data[0].mj,// 生态保护红线面积
- ly_mj: data.data[0].ly_mj,// 路域生态保护红线
- hy_mj: data.data[0].hy_mj,//近海岸面积
- yjjbntmj: obj_yjjbntmj_data.data[0].yjjbntmj,// 永久基本农田保护面积
- kfbjmj: obj_kfbjmj_data.data[0].kfbjmj,// 城市开发边界
- bfb: obj_kfbjmj_data.data[0].bfb * 100,// 覆盖城镇开发边界
- });
- console.log(store.state.cockpit_gkzb, "sadas");
- },
- async gkzb() {
- const that = this;
- that.$refs.gkzb_ref["initData"]();
- },
- async pick_xzqh() {
- const that = this;
- const handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
- handler.setInputAction(async event => {
- let pickObj = viewer.scene.pick(event.position);
- var position = viewer.scene.pickPosition(event.position);
- if (!position)//点击到地球之外
- return false;
- var cartographic = Cesium.Cartographic.fromCartesian(position);
- let longitude = Cesium.Math.toDegrees(cartographic.longitude);
- let latitude = Cesium.Math.toDegrees(cartographic.latitude);
- let height = cartographic.height;
- let heading = viewer.scene.camera.heading;
- let pitch = viewer.scene.camera.pitch;
- // that.addSceneFun()
- // console.log(longitude, latitude, height);
- // if (!pickObj)//未获取实体
- // return false;
- if (!position) {
- position = Cesium.Cartesian3.fromDegrees(0, 0, 0);
- }
- if (Cesium.defined(pickObj)) {
- if (pickObj.id && pickObj.id instanceof Cesium.Entity) {//点击entity
- if (pickObj.id.properties.hasProperty('name')) {
- const name = pickObj.id.properties.name.getValue();
- const address = pickObj.id.properties.adcode.getValue();
- const center = pickObj.id.properties.centroid.getValue();
- store.state.regional_information={
- id:address,
- name:name,
- }
- // 选中状态
- pickObj.id.polygon._material.color = Cesium.Color.fromCssColorString(that.xzqh_color_click);
- pickObj.id.polygon.extrudedHeight = 850;
- // 恢复其他状态
- viewer.entities.values.forEach((res) => {
- if (res.properties.name._value != name) {
- // console.log(res.properties.name._value, "其他的");
- // console.log(res);
- res.polygon._material.color = Cesium.Color.fromCssColorString(that.xzqh_color)
- res.polygon.extrudedHeight = 450;
- }
- })
- that.params.id = address
- that.setDatas()
- // 驾驶舱海域使用权
- that.hysyq(address);
- // 驾驶舱土地收储
- that.tdsc_xzqh(address);
- that.gkzb_xzqh(address);
- } else {
- }
- }
- } else {
- // 暂时点击周围数据显示三亚市
- // 清除所有xzqh状态
- viewer.entities.values.forEach((res) => {
- // console.log(res.properties.name._value, "其他的");
- // console.log(res);
- res.polygon._material.color = Cesium.Color.fromCssColorString(that.xzqh_color)
- res.polygon.extrudedHeight = 450;
- })
- // 海域使用
- that.hysyq_xzqh();
- // 土地收储
- that.tdsc();
- // 管控指标
- that.gkzb();
- }
- }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
- },
- tdsc() {
- const that = this;
- that.store.setCockpitTdsc(true);
- },
- tdsc_xzqh() {
- const that = this;
- that.store.setCockpitTdsc(false);
- },
- init_xzqh() {
- const that = this;
- xzqh.features.forEach((res) => {
- const twoDArray = res.geometry.coordinates[0][0];
- const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);
- console.log();
- viewer.entities.add({
- position: Cesium.Cartesian3.fromDegrees(res.properties.centroid[0], res.properties.centroid[1], 500),
- text: res.properties.name,
- label: {
- scale: 1.5,
- font: "bolder 16px sans-serif",
- style: Cesium.LabelStyle.FILL_AND_OUTLINE,
- text: res.properties.name,//图标名称
- fillColor: Cesium.Color.fromCssColorString("#ffffff"),
- pixelOffset: new Cesium.Cartesian2(5, -15),
- zIndex: 3,
- },
- billboard: {
- // 图像地址,URI或Canvas的属性
- image: "./static/images/overview/htq-f.png",
- height: 60,
- // 宽度(以像素为单位)
- width: 150,
- // 相对于坐标的垂直位置
- // verticalOrigin: Cesium.VerticalOrigin.CENTER,
- // // 相对于坐标的水平位置
- // horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
- scale: 1.0,
- zIndex: 2,
- show: true
- },
- properties: {
- 'type': "cockpit",
- 'name': res.properties.name,
- 'centroid': res.properties.centroid,
- 'adcode': res.properties.adcode,
- },
- polygon: {
- zIndex: 1,
- hierarchy: {
- positions: Cesium.Cartesian3.fromDegreesArray(oneDArray),
- },
- // outline: false,
- material: Cesium.Color.fromCssColorString(that.xzqh_color),
- height: 100,
- extrudedHeight: 450,
- outline: true,
- // outlineColor : Cesium.Color.BLACK
- outlineColor: Cesium.Color.fromCssColorString('#55A1E3'),
- // 设置远近裁条件
- distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0),
- }
- });
- })
- },
- addSceneFun() {
- var pitch = viewer.camera.pitch;
- //获取当前视角的heading
- var heading = viewer.camera.heading;
- //获取当前视角的postion(位置)
- var position = viewer.camera.position;
- var x = position.x;
- var y = position.y;
- var z = position.z;
- var testPitch = pitch;
- var testHeading = heading;
- // console.log("获取当前视角x,y,z", position.x, position.y, position.z, "pitch", pitch, "heading", heading);
- var obj = {
- "x": x,
- "y": y,
- "z": z,
- "pitch": pitch,
- "heading": heading,
- }
- console.log(obj, "asd");
- }
- },
- beforeCreate() { }, //生命周期 - 创建之前
- created() { }, //生命周期 - 创建完成(可以访问当前this实例)
- beforeMount() { }, //生命周期 - 挂载之前
- async mounted() {
- // let obj = { beginTime: '20230612', endTime: '20230817', jscType: 'jsc_wpjc_yelx', id: '46' };
- // let data = await cockpitInfo(obj);
- // let obj1 = { beginTime: '20230612', endTime: '20230817', jscType: 'jsc_wpjc_ztsh', id: '46' }
- // let data1 = await cockpitInfo(obj1);
- // console.log(data, "asda");
- // console.log(data1, "asda");
- // 三亚行政区划加载
- this.$nextTick((res) => {
- this.pick_xzqh();
- this.init_xzqh()
- });
- }, //生命周期 - 挂在完成
- beforeUpdate() { }, //生命周期 - 更新之前
- updated() { }, //生命周期 - 更新之后
- beforeDestroy() { }, //生命周期 - 销毁之前
- destroy() { },//生命周期 - 销毁完成
- activated() { }, //若组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。
- deactivated() { } //若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。
- };
- </script>
- <style scoped></style>
|