From 997262e44f7f9e8d0cde869cfd026ef8c0850efd Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Thu, 16 Dec 2021 11:18:57 +0800
Subject: [PATCH] 增加弹窗中跳转地图并显示当前建筑弹窗
---
src/components/mobilemap/index.vue | 150 ++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 126 insertions(+), 24 deletions(-)
diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index 1953320..f666086 100644
--- a/src/components/mobilemap/index.vue
+++ b/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>
--
Gitblit v1.9.3