From a22aa1086eeef39a26cc161326ce09cd183185ea Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Fri, 04 Mar 2022 15:57:47 +0800
Subject: [PATCH] 3.3 1.自定义标签,退出后自动清除 2.自定义标签,转换二维码的数据格式ok,移动端对接二维码ok, 3.自定义标签点击移动到指定位置 ok 4.面板自适应高度 4.更换定位依赖,自定义标签扫码入移动端可以定位并显示路线
---
src/components/mobilemap/index.vue | 227 +++++++++++++++++++++++++++++---------------------------
1 files changed, 116 insertions(+), 111 deletions(-)
diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index a41a9ae..7a3821e 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,13 @@
[116.41526036, 27.95352217, 100],
],
areaLayer: null,
+ mapCenter: [115.871863, 28.743861, 400.0],
+ //控制4层缩放
+ onelayerNum: 80,
+ towlayerNum: 120,
+ threelayerNum: 160,
+ forlayerNum: 200,
+ frislayertHeight: 160, //默认高度
};
},
computed: {
@@ -102,6 +109,7 @@
"dimensionData",
"areaLayer", //绿布
"areaLayerSelect", //绿布颜色控制
+ "urlParameterData", //url 参数
]),
},
watch: {
@@ -118,6 +126,7 @@
},
},
mounted() {
+ // return;
var DC = global.DC;
this.DC = DC;
@@ -284,8 +293,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 +308,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 +343,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 > 180) {
+ butSetViews(160);
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 > 140) {
+ butSetViews(120);
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 > 100) {
+ butSetViews(80);
}
}
};
@@ -374,56 +378,18 @@
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 > 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 > 100 && height <= 140) {
+ butSetViews(160);
}
- 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 > 140 && height < 180) {
+ butSetViews(200);
}
}
};
@@ -453,18 +419,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 +432,7 @@
ii++;
cutHeight = height - startHeight;
// console.log(cutHeight);
- console.log(height);
+ // console.log(height);
that.heights = height;
that.heights1 = cutHeight;
// return;
@@ -840,6 +794,7 @@
video: item.videourl,
buts: ["定位", "实景", "图集"],
panoramaurl: item.panoramaurl, //全景
+ fromTo: "mapClick",
};
// 定制化窗体
// console.log(item, useData, "111111");
@@ -885,7 +840,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,
@@ -1071,6 +1026,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 +1081,15 @@
};
that.$store.dispatch("setMobileWindows", d);
},
+ flytos(jd, wd) {
+ this.$store.dispatch("mapFlyTo", {
+ lntLat: [jd, wd, 120], //114.04020791, 27.62934732
+ heading: 0,
+ pitch: -90,
+ roll: 0,
+ noOpen: true,
+ });
+ },
},
};
</script>
--
Gitblit v1.9.3