liuyg
2021-12-16 997262e44f7f9e8d0cde869cfd026ef8c0850efd
src/components/mobilemap/index.vue
@@ -1,8 +1,8 @@
/* eslint-disable camelcase */
<template>
  <div id="mobile-viewer-container">
    <!-- 地图图标弹窗↓ -->
    <div id="mobile-map_popup_content"></div>
    <div
      ref="mobile-mapContentContent"
      v-show="popupWindow"
@@ -18,6 +18,7 @@
          :preview-src-list="srcList"
        >
        </el-image>
        <div>坐标 {{ positions }}</div>
        哈工大A10公寫总建筑面积30740平方米,于2001年采用货款方式高标准建造并投入使用。整个楼体共分十层,地上九层为公寫主体。公寓外观呈工字型,公寓内房司以A、B、C三个区域別分,与哈工大雄厚的工科底蕴遥相呼应,是哈尔滨工业大学学生公寫的标志性建筑
      </div>
      <div class="mobile-popup-control">
@@ -25,25 +26,34 @@
          >图集</el-link
        >
        <el-divider direction="vertical"></el-divider>
        <el-link icon="el-icon-map-location">实景</el-link>
        <el-divider direction="vertical"></el-divider>
        <el-link icon="el-icon-aim">去这</el-link>
        <el-link icon="el-icon-aim" @click="goOn">去这</el-link>
      </div>
    </div>
    <!-- 地图图标弹窗↑ -->
    <!-- 控制↓ -->
    <mobileLeftNav ref="mobileLeftNav"></mobileLeftNav>
    <mobileCortrol ref="mobileCortrol"></mobileCortrol>
    <mobileCortrolButtom ref="mobileCortrolButtom"></mobileCortrolButtom>
    <mobileCortrolSearch ref="mobileCortrolSearch"></mobileCortrolSearch>
    <!-- 控制↑ -->
    <!-- 控制大弹窗的弹窗 -->
    <mobilePopupOurAfter v-if="mBigPopupAfter"></mobilePopupOurAfter>
    <!-- 大弹窗 -->
    <mobilePopupOur :style="[bigPopup]" v-if="mBigPopup"></mobilePopupOur>
  </div>
</template>
<script>
import { mapGetters } from "vuex";
import { location } from "../../position/position";
export default {
  name: "mobilemapBox",
  data() {
    return {
      DC: "",
      popupsDom: "",
      positions: "",
      url: "/img/job/one.jpg",
      srcList: [
        "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
@@ -51,13 +61,32 @@
      ],
      popupFlag: false,
      popupWindow: false,
      bigPopup: {
        width: 0,
        height: 0,
        transition: "all 3s",
      },
    };
  },
  computed: {
    ...mapGetters(["mviewer"]),
    ...mapGetters(["mviewer", "mBigPopup", "mBigPopupAfter"]),
  },
  watch: {
    mBigPopup() {
      if (this.mBigPopup) {
        this.bigPopup.width = "100%";
        this.bigPopup.height = "100%";
        this.bigPopup.display = "inline-block";
      } else {
        this.bigPopup.width = "0";
        this.bigPopup.height = "0";
        this.bigPopup.display = "none";
      }
    },
  },
  mounted() {
    var DC = global.DC;
    this.DC = DC;
    var that = this;
@@ -143,6 +172,16 @@
        iconUrl: "examples/images/icon/img.png",
        name: "影像",
      });
      // let nowPosition = "";
      // 地图移动事件
      // viewer.on(DC.MouseEventType.MOUSE_MOVE, (e) => {
      //   if (that.popupWindow && that.popupsDom) {
      //     that.popupsDom.closeOur();
      //     that.popupWindow = false;
      //   }
      //   // nowPosition = [e.wgs84Position.lng, e.wgs84Position.lat];
      //   // console.log(nowPosition);
      // });
      // // eslint-disable-next-line camelcase
      // const baselayer_shaded = DC.ImageryLayerFactory.createArcGisImageryLayer({
@@ -198,30 +237,41 @@
      tileset.on(DC.MouseEventType.CLICK, (e) => {
        // that.popupFlag = true
        that.popupWindow = true;
        // that.popupWindow = true;
        viewer.scene.globe.depthTestAgainstTerrain = false;
        // console.log(document.getElementById("mobile-map_content_content"));
        console.log(e.position);
        // console.log(e.position);
        // 定制化窗体
        var divForms = new DC.mobileDivForms(viewer, {
          domId: "mobilePopup",
          title: "成教楼  ",
          className: "mobilePopup",
          content: document.getElementById("mobile-map_content_content"),
          position: [e.position],
        });
        viewer.zoomToPosition(
          new DC.Position(
            e.wgs84Position.lng,
            e.wgs84Position.lat - 0.016,
            2030,
            0,
            -45
          )
        );
        that.openPopupS(e.position, [e.wgs84Position.lng, e.wgs84Position.lat]);
        // that.popupsDom = new DC.mobileDivForms(viewer, {
        //   domId: "mobilePopup",
        //   title: "成教楼  ",
        //   className: "mobilePopup",
        //   content: document.getElementById("mobile-map_content_content"),
        //   position: [e.position],
        // });
        // console.log(e.position);
        // that.positions = [e.wgs84Position.lng, e.wgs84Position.lat];
        // // let flying = new DC.Flying(viewer);
        // // flying.positions = [
        // //   `${nowPosition[0]},${nowPosition[0]},0,-29`,
        // //   `${e.wgs84Position.lng},${e.wgs84Position.lat},0,-29`,
        // // ];
        // // flying.start();
        // console.log(e.wgs84Position.lng, e.wgs84Position.lat);
        // viewer.zoomToPosition(
        //   new DC.Position(
        //     e.wgs84Position.lng,
        //     e.wgs84Position.lat - 0.012,
        //     1530,
        //     0,
        //     -45
        //   )
        // );
        // popup.setWrapper('<div></div>')
        // popup.showAt(e.position, document.getElementById('modelPopup'))
@@ -232,7 +282,7 @@
      // )
      viewer.compass.enable = false;
      viewer.zoomController.enable = false;
      viewer.zoomController.enable = true;
      viewer.locationBar.enable = false;
      viewer.distanceLegend.enable = true;
    }
@@ -240,10 +290,62 @@
    DC.ready(initViewer);
  },
  methods: {
    openPopupS(position, lntLat) {
      let that = this;
      // 定制化窗体
      that.popupsDom = new that.DC.mobileDivForms(that.mviewer, {
        domId: "mobilePopup",
        title: "成教楼  ",
        className: "mobilePopup",
        content: document.getElementById("mobile-map_content_content"),
        position: [position],
      });
      that.positions = lntLat;
      that.popupWindow = true;
      // let flying = new DC.Flying(viewer);
      // flying.positions = [
      //   `${nowPosition[0]},${nowPosition[0]},0,-29`,
      //   `${e.wgs84Position.lng},${e.wgs84Position.lat},0,-29`,
      // ];
      // flying.start();
      // console.log(e.wgs84Position.lng, e.wgs84Position.lat);
      that.mviewer.zoomToPosition(
        new that.DC.Position(lntLat[0], lntLat[1] - 0.012, 1530, 0, -45)
      );
    },
    mobileOpenImgs() {
      let imgsDom = document.getElementById("mobileBigImgs");
      imgsDom.click();
    },
    goOn() {
      // if (navigator.geolocation) {
      //   navigator.geolocation.watchPosition(backPoint);
      // }
      // function backPoint(res) {
      //   console.log(res);
      //   let position = [res.coords.longitude, res.coords.latitude];
      //   console.log(position);
      // }
      // this.getLocation();
      // location((res) => {
      //   console.log(res);
      //   alert(res.message);
      // });
      // console.log(returnCitySN["cip"]);
    },
    getLocation() {
      // let _that = this;
      // let geolocation = location.initMap("map-container"); //定位
      // AMap.event.addListener(geolocation, "complete", (result) => {
      //   console.log(result);
      //   // console.log("hhha");
      //   // _that.lat = result.position.lat;
      //   // _that.lng = result.position.lng;
      //   // _that.province = result.addressComponent.province;
      //   // _that.city = result.addressComponent.city;
      //   // _that.district = result.addressComponent.district;
      // });
    },
  },
};
</script>