From 01f9c88fd0ee768155e5b341c2bb95a85bc11a08 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Sat, 05 Mar 2022 17:49:36 +0800
Subject: [PATCH] ++
---
src/components/mobilemap/index.vue | 323 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 198 insertions(+), 125 deletions(-)
diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index a41a9ae..4d2bb22 100644
--- a/src/components/mobilemap/index.vue
+++ b/src/components/mobilemap/index.vue
@@ -29,9 +29,9 @@
<!-- 活动窗口 -->
<mobileActivity></mobileActivity>
<!-- 盖住左下角 -->
- <div class="cover_mobileMap">智慧社区</div>
+ <div class="cover_mobileMap">智慧校区</div>
<!-- 指示器 -->
- <div class="heights">{{ heights }}---{{ heights1 }}</div>
+ <!-- <div class="heights">{{ heights }}---{{ heights1 }}</div> -->
</div>
</template>
<script>
@@ -87,6 +87,20 @@
[116.41526036, 27.95352217, 100],
],
areaLayer: null,
+ mapCenter: [115.871863, 28.743861, 400.0],
+ //控制4层缩放
+ onelayerNum: 80,
+ towlayerNum: 120,
+ threelayerNum: 160,
+ forlayerNum: 200,
+ intervallayerNum: 20,
+ frislayertHeight: 160, //默认高度
+ // onelayerNum: 80,
+ // towlayerNum: 200,
+ // threelayerNum: 320,
+ // forlayerNum: 440,
+ // intervallayerNum: 60,
+ // frislayertHeight: 320, //默认高度
};
},
computed: {
@@ -102,6 +116,7 @@
"dimensionData",
"areaLayer", //绿布
"areaLayerSelect", //绿布颜色控制
+ "urlParameterData", //url 参数
]),
},
watch: {
@@ -118,6 +133,7 @@
},
},
mounted() {
+ // return;
var DC = global.DC;
this.DC = DC;
@@ -284,8 +300,11 @@
// if (height > 2000) {
// conBack(2000);
// }
- if (height <= 79 && isSet) {
- conBack(79);
+ // if (height <= 79 && isSet) {
+ // conBack(79);
+ // }
+ if (height <= that.onelayerNum - 1 && isSet) {
+ conBack(that.onelayerNum - 1);
}
// if (height > 220 && height <= 280 && isSet) {
// conBack(280);
@@ -296,12 +315,33 @@
// if (height > 340 && height <= 400 && isSet) {
// conBack(400);
// }
- if (height > 200 && isSet) {
- conBack(200);
+ // if (height > 200 && isSet) {
+ // conBack(200);
+ // }
+ if (height > that.forlayerNum && isSet) {
+ conBack(that.forlayerNum);
}
});
// 按钮事件
+ let butSetViews = (num) => {
+ viewer.camera.flyTo({
+ destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ viewer.camera.positionCartographic.longitude,
+ viewer.camera.positionCartographic.latitude,
+ num
+ ),
+ orientation: {
+ // 指向
+ heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0,
+ },
+ duration: 0.5, // 定位的时间间隔
+ });
+ // overii();
+ };
that.butbut = function () {
//放大
document.querySelector(".dc-zoom-controller").children[0].onclick =
@@ -310,60 +350,31 @@
const height = Math.ceil(
viewer.camera.positionCartographic.height
);
+ // if (height > 180) {
+ // butSetViews(160);
+ // return;
+ // }
- if (height > 360) {
- viewer.camera.setView({
- destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
- viewer.camera.positionCartographic.longitude,
- viewer.camera.positionCartographic.latitude,
- 330
- ),
- orientation: {
- // 指向
- heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0,
- },
- });
+ // if (height > 140) {
+ // butSetViews(120);
+ // return;
+ // }
+ // if (height > 100) {
+ // butSetViews(80);
+ // }
+ if (height > that.forlayerNum - that.intervallayerNum) {
+ butSetViews(that.threelayerNum);
return;
}
- if (height > 300) {
- viewer.camera.setView({
- destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
- viewer.camera.positionCartographic.longitude,
- viewer.camera.positionCartographic.latitude,
- 270
- ),
- orientation: {
- // 指向
- heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0,
- },
- });
-
+ if (height > that.threelayerNum - that.intervallayerNum) {
+ butSetViews(that.towlayerNum);
return;
}
- if (height > 240) {
- viewer.camera.setView({
- destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
- viewer.camera.positionCartographic.longitude,
- viewer.camera.positionCartographic.latitude,
- 200
- ),
- orientation: {
- // 指向
- heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0,
- },
- });
+ if (height > that.towlayerNum - that.intervallayerNum) {
+ butSetViews(that.onelayerNum);
}
}
};
@@ -374,56 +385,36 @@
const height = Math.ceil(
viewer.camera.positionCartographic.height
);
+ console.log(height);
- if (height <= 240) {
- viewer.camera.setView({
- destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
- viewer.camera.positionCartographic.longitude,
- viewer.camera.positionCartographic.latitude,
- 270
- ),
- orientation: {
- // 指向
- heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0,
- },
- });
+ // if (height <= 100) {
+ // butSetViews(120);
+ // }
+
+ // if (height > 100 && height <= 140) {
+ // butSetViews(160);
+ // }
+
+ // if (height > 140 && height < 180) {
+ // butSetViews(200);
+ // }
+
+ if (height <= that.towlayerNum - that.intervallayerNum) {
+ butSetViews(that.towlayerNum);
}
- if (height > 240 && height <= 300) {
- viewer.camera.setView({
- destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
- viewer.camera.positionCartographic.longitude,
- viewer.camera.positionCartographic.latitude,
- 330
- ),
- orientation: {
- // 指向
- heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0,
- },
- });
+ if (
+ height > that.towlayerNum - that.intervallayerNum &&
+ height <= that.threelayerNum - that.intervallayerNum
+ ) {
+ butSetViews(that.threelayerNum);
}
- if (height > 300 && height < 360) {
- viewer.camera.setView({
- destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
- viewer.camera.positionCartographic.longitude,
- viewer.camera.positionCartographic.latitude,
- 400
- ),
- orientation: {
- // 指向
- heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0,
- },
- });
+ if (
+ height > that.threelayerNum - that.intervallayerNum &&
+ height < that.forlayerNum - that.intervallayerNum
+ ) {
+ butSetViews(that.forlayerNum);
}
}
};
@@ -453,18 +444,6 @@
},
duration: 0.5, // 定位的时间间隔
});
- // that.$store.dispatch("mapFlyTo", {
- // //飞入
- // lntLat: [
- // viewer.camera.positionCartographic.longitude,
- // viewer.camera.positionCartographic.latitude,
- // num,
- // ],
- // heading: 0,
- // pitch: -90,
- // roll: 0.0,
- // noOpen: true,
- // });
overii();
},
isCameraTime = null;
@@ -478,7 +457,7 @@
ii++;
cutHeight = height - startHeight;
// console.log(cutHeight);
- console.log(height);
+ console.log(height, "see");
that.heights = height;
that.heights1 = cutHeight;
// return;
@@ -497,29 +476,66 @@
let takes = () => {
if (ii != 1) {
if (cutHeight >= 0) {
- if (cutHeight > 3) {
- if (height >= 83 && height < 120) {
- setViews(120);
+ if (cutHeight > 2) {
+ // if (height >= 83 && height < 120) {
+ // setViews(120);
+ // }
+ // if (height >= 123 && height < 160) {
+ // setViews(160);
+ // }
+ // if (height >= 163 && height < 200) {
+ // setViews(200);
+ // }
+ if (
+ height >= that.onelayerNum + 2 &&
+ height < that.towlayerNum
+ ) {
+ setViews(that.towlayerNum);
}
- if (height >= 123 && height < 160) {
- setViews(160);
+ if (
+ height >= that.towlayerNum + 2 &&
+ height < that.threelayerNum
+ ) {
+ setViews(that.threelayerNum);
}
- if (height >= 163 && height < 200) {
- setViews(200);
+ if (
+ height >= that.threelayerNum + 2 &&
+ height < that.forlayerNum
+ ) {
+ setViews(that.forlayerNum);
}
}
//放大
} else {
//缩小
- if (cutHeight < -3) {
- if (height <= 200 && height > 157) {
- setViews(160);
+ // if (cutHeight < -3) {
+ // if (height <= 200 && height > 157) {
+ // setViews(160);
+ // }
+ // if (height <= 157 && height > 117) {
+ // setViews(120);
+ // }
+ // if (height <= 117 && height > 80) {
+ // setViews(80);
+ // }
+ if (cutHeight < -2) {
+ if (
+ height <= that.forlayerNum &&
+ height > that.threelayerNum - 2
+ ) {
+ setViews(that.threelayerNum);
}
- if (height <= 157 && height > 117) {
- setViews(120);
+ if (
+ height <= that.threelayerNum - 2 &&
+ height > that.towlayerNum - 2
+ ) {
+ setViews(that.towlayerNum);
}
- if (height <= 117 && height > 80) {
- setViews(80);
+ if (
+ height <= that.towlayerNum - 2 &&
+ height > that.onelayerNum
+ ) {
+ setViews(that.onelayerNum);
}
}
}
@@ -840,6 +856,7 @@
video: item.videourl,
buts: ["定位", "实景", "图集"],
panoramaurl: item.panoramaurl, //全景
+ fromTo: "mapClick",
};
// 定制化窗体
// console.log(item, useData, "111111");
@@ -885,7 +902,7 @@
};
that.dimension == "2.5D"
? doit2(
- [114.04020791, 27.62934732, 160.0],
+ [that.mapCenter[0], that.mapCenter[1], that.frislayertHeight],
// [114.04062292, 27.62666834, 220.0],
[
that.dimensionData.heading,
@@ -1014,6 +1031,11 @@
//判断默认维度
//原本默认是2.5d 改为3d默认时做出改变
if (that.dimension == "2.5D") {
+ that.$store.commit("set_frislayertHeight", that.frislayertHeight); //送入默认弹窗高度
+ that.$store.commit("set_zoomRange", [
+ that.onelayerNum,
+ that.forlayerNum,
+ ]); //送入移动端缩放范围
that.$store.commit("MSET_DIMENSION", "2.5D"); //切换2.5D设置
} else if (that.dimension == "3D") {
// setTimeout((res) => {
@@ -1071,6 +1093,47 @@
DC.ready(initViewer);
setTimeout(() => {
that.butbut();
+ //判断是否有url参数
+ // console.log(that.urlParameterData);
+ if (typeof that.urlParameterData != "string") {
+ // console.log(that.urlParameterData);
+ that.$store.commit("initurlParameterLayer"); //初始化自定义标签图层
+ if (that.urlParameterData.methods == "goto") {
+ //url有定位的参数
+ // alert(that.urlParameterData.jd);
+ // alert(that.urlParameterData.wd);
+ // 创建标记
+ let dsa = {
+ list: [
+ {
+ name: that.urlParameterData.name || "无标题",
+ jd: that.urlParameterData.jd,
+ wd: that.urlParameterData.wd,
+ },
+ ],
+ clear: true,
+ };
+ that.$store.dispatch("addurlParameterLayerIcon", dsa);
+ // that.flytos(
+ // //飞入标记
+ // +that.urlParameterData.jd + 0.012,
+ // +that.urlParameterData.wd
+ // );
+
+ let d = {
+ position: {},
+ lntLat: [+that.urlParameterData.jd, +that.urlParameterData.wd],
+ query: {
+ introduce: "自定义标签",
+ address: "",
+ ...(that.urlParameterData || {}),
+ lntLat: [+that.urlParameterData.jd, +that.urlParameterData.wd],
+ },
+ useJWD: true, //仅使用经纬度
+ };
+ that.$store.dispatch("setMobileWindows", d);
+ }
+ }
}, 0);
},
methods: {
@@ -1085,6 +1148,16 @@
};
that.$store.dispatch("setMobileWindows", d);
},
+ flytos(jd, wd) {
+ let height = this.frislayertHeight;
+ this.$store.dispatch("mapFlyTo", {
+ lntLat: [jd, wd, height], //114.04020791, 27.62934732
+ heading: 0,
+ pitch: -90,
+ roll: 0,
+ noOpen: true,
+ });
+ },
},
};
</script>
--
Gitblit v1.9.3