From e40ee62d3e9b71ffe3432d32a53a00c4097b5708 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 31 Dec 2021 09:03:28 +0800
Subject: [PATCH] +3d 2.5d
---
src/components/mobileLeftNav/index.vue | 388 +++++++++++++++++++-----------------------------------
1 files changed, 138 insertions(+), 250 deletions(-)
diff --git a/src/components/mobileLeftNav/index.vue b/src/components/mobileLeftNav/index.vue
index aba8411..5f84749 100644
--- a/src/components/mobileLeftNav/index.vue
+++ b/src/components/mobileLeftNav/index.vue
@@ -20,12 +20,15 @@
<script>
import { mapGetters } from "vuex";
import {
- getListdoor, //出入
- getListaed, //AED
- getListparking, //停车场
+ // getListdoor, //出入
+ // getListaed, //AED
+ // getListparking, //停车场
getListarchitecture, //全景
getListarchitecture1, //标签
+ getListroad, //道路
+ getListcat, //出入-AED-停车场
} from "@/api/mobile/piont/index";
+import { getListVideo } from "@/api/mobile/monitor/index";
export default {
name: "mobileLeftNav",
watch: {
@@ -53,20 +56,6 @@
imgStyle: {
right: "0",
},
- // coutrolStyle: {
- // position: " absolute",
- // left: "-26px",
- // top: "114px",
- // right: "auto",
- // width: "25px",
- // height: "60px",
- // backgroundColor: "#fff",
- // borderRadius: "10px",
- // display: "flex",
- // alignItems: "center",
- // justifyContent: "center",
- // transition: "left 3s",
- // },
leftNavData: [
{
flag: false,
@@ -76,18 +65,19 @@
checked: "/img/leftnav/tag-checked.png",
layer: "tagLayer",
methods: getListarchitecture1,
- imgSrc: "img/mobile/pink.png",
+ imgSrc: "https://map.hit.edu.cn/images/tarrow_xq.png",
+ // imgSrc: "img/mobile/pink.png",
},
- // {
- // flag: false,
- // label: "道路",
- // img: "/img/leftnav/way.png",
- // normal: "/img/leftnav/way.png",
- // checked: "/img/leftnav/way-checked.png",
- // layer: "wayLayer",
- // methods: getListdoor,
- // imgSrc: "img/mobile/green.png",
- // },
+ {
+ flag: false,
+ label: "道路",
+ img: "/img/leftnav/way.png",
+ normal: "/img/leftnav/way.png",
+ checked: "/img/leftnav/way-checked.png",
+ layer: "wayLayer",
+ methods: getListroad,
+ imgSrc: "img/mobile/green.png",
+ },
{
flag: false,
label: "实景",
@@ -96,7 +86,19 @@
checked: "/img/leftnav/scene-checked.png",
layer: "sceneLayer",
methods: getListarchitecture,
- imgSrc: "img/mobile/blue.png",
+ imgSrc: "img/leftnav/map-panorama.png",
+ // imgSrc: "img/mobile/blue.png",
+ },
+ {
+ flag: false,
+ label: "监控",
+ img: "/img/leftnav/monitor.png",
+ normal: "/img/leftnav/monitor.png",
+ checked: "/img/leftnav/monitor-checked.png",
+ layer: "videoLayer",
+ methods: getListVideo,
+ imgSrc: "/img/leftnav/map-monitor.png",
+ // imgSrc: "img/mobile/blue.png",
},
// {
// flag: false,
@@ -115,8 +117,10 @@
normal: "/img/leftnav/aed.png",
checked: "/img/leftnav/aed-checked.png",
layer: "aedLayer",
- methods: getListaed,
- imgSrc: "img/mobile/pink.png",
+ methods: getListcat,
+ type: 9,
+ imgSrc: "img/leftnav/map-aed.png",
+ // imgSrc: "img/mobile/pink.png",
},
{
flag: false,
@@ -125,8 +129,10 @@
normal: "/img/leftnav/park.png",
checked: "/img/leftnav/park-checked.png",
layer: "parkLayer",
- methods: getListparking,
- imgSrc: "img/mobile/popcorn.png",
+ methods: getListcat,
+ type: 11,
+ imgSrc: "https://map.hit.edu.cn/images/p-biao.png",
+ // imgSrc: "img/mobile/popcorn.png",
},
{
flag: false,
@@ -135,8 +141,10 @@
normal: "/img/leftnav/come.png",
checked: "/img/leftnav/come-checked.png",
layer: "comeLayer",
- methods: getListdoor,
- imgSrc: "img/mobile/purple.png",
+ methods: getListcat,
+ type: 12,
+ imgSrc: "img/leftnav/map-activity.png",
+ // imgSrc: "img/mobile/purple.png",
},
],
viewer: null,
@@ -144,6 +152,7 @@
tagLayer: null,
wayLayer: null,
sceneLayer: null,
+ videoLayer: null,
activityLayer: null,
aedLayer: null,
parkLayer: null,
@@ -158,15 +167,6 @@
changeIconHide() {
let isif = this.iconHide;
this.$store.commit("MSET_ICONHIDE", !isif);
- },
- generatePosition(num) {
- const list = [];
- for (let i = 0; i < num; i++) {
- const lng = 121.0493 + Math.random() * 0.5;
- const lat = 31.2583 + Math.random() * 0.5;
- list.push(new this.DC.Position(lng, lat, 0));
- }
- return list;
},
leftNavClick(item) {
//判断并关闭已开启标签
@@ -202,7 +202,8 @@
// console.log(posi);
this.$store.dispatch("mapFlyTo", {
//飞入
- lntLat: [posi.lng + 0.01187, posi.lat - 0.0308, 4000],
+ lntLat: [posi.lng + 0.00917, posi.lat - 0.0188, 2100],
+ // lntLat: [posi.lng + 0.01187, posi.lat - 0.0308, 4000],
// lntLat: [121.50492752204283, 31.21567802276832, 2530],
heading: 0,
pitch: -45,
@@ -224,6 +225,9 @@
this.sceneLayer = new this.DC.HtmlLayer("sceneLayer");
viewer.addLayer(this.sceneLayer);
+ this.videoLayer = new this.DC.HtmlLayer("videoLayer");
+ viewer.addLayer(this.videoLayer);
+
// this.activityLayer = new this.DC.VectorLayer("activityLayer");
this.activityLayer = new this.DC.HtmlLayer("activityLayer");
viewer.addLayer(this.activityLayer);
@@ -239,229 +243,113 @@
this.comeLayer = new this.DC.HtmlLayer("comeLayer");
viewer.addLayer(this.comeLayer);
- // const positions1 = this.generatePosition(4);
- // positions1.forEach((item, index) => {
- // const divIcon = new this.DC.DivIcon(
- // item,
- // `
- // <div class="tag-entitys-box">
- // <div class="tag-content">
- // 南门口
- // </div>
- // <div class="tag-angle-content">
- // <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
- // </div>
- // </div>
- // `
- // );
- // // e.overlay._position._lng,
- // // e.overlay._position._lat - 0.012,
- // //订阅事件1
- // divIcon.on(DC.MouseEventType.CLICK, (e) => {
- // // 定制化窗体
- // that.openPopupS(
- // e.position,
- // [e.overlay._position._lng, e.overlay._position._lat],
- // { name: "标签" }
- // );
- // });
- // this.tagLayer.addOverlay(divIcon); //标签
- // });
- // this.tagLayer["positions"] = positions1;
-
- // const positions2 = this.generatePosition(50);
- // positions2.forEach((item, index) => {
- // const divIcon = new this.DC.DivIcon(
- // item,
- // `
- // <div class="way-entitys-box">
- // <div class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff; width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;">
- // 工建街
- // </div>
- // <div class="way-sign-box">
- // <img src="https://map.hit.edu.cn/images/roadsign3.png">
- // </div>
- // </div>
- // `
- // );
- // //订阅事件2
- // divIcon.on(DC.MouseEventType.CLICK, (e) => {
- // // 定制化窗体
- // that.openPopupS(
- // e.position,
- // [e.overlay._position._lng, e.overlay._position._lat],
- // { name: "道路" }
- // );
- // });
- // this.wayLayer.addOverlay(divIcon); //道路
- // });
- // this.wayLayer["positions"] = positions2;
-
- // const positions3 = this.generatePosition(50);
- // positions3.forEach((item) => {
- // const billboard = new this.DC.Billboard(
- // item,
- // "/img/leftnav/map-panorama.png"
- // );
- // billboard.size = [16, 16];
- // //订阅事件3
- // billboard.on(DC.MouseEventType.CLICK, (e) => {
- // // 定制化窗体
- // that.openPopupS(
- // e.position,
- // [e.wgs84Position.lng, e.wgs84Position.lat],
- // { name: "实景" }
- // );
- // });
- // this.sceneLayer.addOverlay(billboard); //实景
- // });
- // this.sceneLayer["positions"] = positions3;
-
- // const positions10 = this.generatePosition(50);
- // positions10.forEach((item) => {
- // const label = new this.DC.Label(item, "活动");
- // label.setStyle({
- // fillColor: this.DC.Color.ORANGERED,
- // font: "10px sans-serif",
- // pixelOffset: { x: 0, y: -16 },
- // });
- // this.activityLayer.addOverlay(label);
-
- // const billboard = new this.DC.Billboard(
- // item,
- // "/img/leftnav/map-aed.png"
- // // "/img/leftnav/map-panorama.png"
- // );
- // billboard.size = [16, 16];
- // //订阅事件10
- // billboard.on(DC.MouseEventType.CLICK, (e) => {
- // // 定制化窗体
- // that.openPopupS(
- // e.position,
- // [e.wgs84Position.lng, e.wgs84Position.lat],
- // { name: "活动" }
- // );
- // });
- // this.activityLayer.addOverlay(billboard); //活动
- // });
- // this.activityLayer["positions"] = positions10;
-
- // const positions4 = this.generatePosition(10);
- // positions4.forEach((item, index) => {
- // const label = new this.DC.Label(item, "建筑AED");
- // label.setStyle({
- // fillColor: this.DC.Color.ORANGERED,
- // font: "10px sans-serif",
- // pixelOffset: { x: 0, y: -16 },
- // });
- // this.aedLayer.addOverlay(label);
-
- // const billboard = new this.DC.Billboard(
- // item,
- // "/img/leftnav/map-aed.png"
- // );
- // billboard.size = [16, 16];
- // //订阅事件4
- // billboard.on(DC.MouseEventType.CLICK, (e) => {
- // // 定制化窗体
- // that.openPopupS(
- // e.position,
- // [e.wgs84Position.lng, e.wgs84Position.lat],
- // { name: "建筑AED" }
- // );
- // });
- // this.aedLayer.addOverlay(billboard); //AED
- // });
- // this.aedLayer["positions"] = positions4;
-
- // const positions5 = this.generatePosition(120);
- // positions5.forEach((item, index) => {
- // const divIcon = new this.DC.DivIcon(
- // item,
- // `
- // <div class="park-entitys-box">
- // <div class="park-title" alt="校外街路侧停车场">
- // </div>
- // <div class="park-sign-box">
- // <div>
- // <img src="https://map.hit.edu.cn/images/p-biao.png" width="14" height="14" alt="校外街路侧停车场" title="校外街路侧停车场">
- // </div>
- // <div>
- // <img src="https://map.hit.edu.cn/images/roadsign.png" width="5" height="21">
- // </div>
- // </div>
- // </div>
- // `
- // );
- // //订阅事件5
- // divIcon.on(DC.MouseEventType.CLICK, (e) => {
- // // 定制化窗体
- // that.openPopupS(
- // e.position,
- // [e.overlay._position._lng, e.overlay._position._lat],
- // { name: "校外街路侧停车场" }
- // );
- // });
- // this.parkLayer.addOverlay(divIcon);
- // });
- // this.parkLayer["positions"] = positions5;
-
- // const positions6 = this.generatePosition(10);
-
- // positions6.forEach((item, index) => {
- // const label = new this.DC.Label(item, "123");
- // label.setStyle({
- // fillColor: this.DC.Color.PURPLE,
- // outlineColor: this.DC.Color.WHITE, // 边框颜色
- // outlineWidth: 2, // 边框大小,
- // font: "10px sans-serif",
- // pixelOffset: { x: 0, y: -16 },
- // });
- // this.comeLayer.addOverlay(label);
-
- // const billboard = new this.DC.Billboard(
- // item,
- // "/img/leftnav/map-activity.png"
- // );
- // billboard.size = [16, 16];
- // //订阅事件6
- // billboard.on(DC.MouseEventType.CLICK, (e) => {
- // // 定制化窗体
- // that.openPopupS(
- // e.position,
- // [e.wgs84Position.lng, e.wgs84Position.lat],
- // { name: "123" }
- // );
- // });
- // this.comeLayer.addOverlay(billboard); //出入
- // });
- // this.comeLayer["positions"] = positions6;
let ourNum = that.leftNavData.length;
for (let n = 0; n < ourNum; n++) {
- this.leftNavData[n].methods().then((res) => {
+ let ourD = this.leftNavData[n];
+ let d = ourD.type ? { lifetype: ourD.type } : {};
+ ourD.methods(d).then((res) => {
+ let dom;
let data = res.data.data;
let position = that.changePoiton(data);
let num = data.length;
for (let k = 0; k < num; k++) {
- const divIcon = new that.DC.DivIcon(
- position[k],
- `
+ if (ourD.label == "标签") {
+ dom = `
<div class="tag-entitys-box">
<div class="tag-content">
${data[k].mechanismname}
</div>
<div class="tag-angle-content">
- <img src="${this.leftNavData[n].imgSrc}">
+ <img src="${ourD.imgSrc}">
</div>
</div>
- `
- );
+ `;
+ } else if (ourD.label == "道路") {
+ // <div class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff; width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;">
+ // ${data[k].mechanismname}
+ // </div>
+ dom = `
+ <div class="way-entitys-box">
+ <div class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff; width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;">
+ ${data[k].roadname}
+ </div>
+ <div class="way-sign-box">
+ <img src="https://map.hit.edu.cn/images/roadsign3.png">
+ </div>
+ </div>
+ `;
+ } else if (ourD.label == "实景") {
+ // <div class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff; width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;">
+ // ${data[k].mechanismname}
+ // </div>
+ dom = `
+ <div class="way-entitys-box mobile-way-entitys-box">
+ <div class="way-sign-box ">
+ <img src="img/leftnav/map-panorama.png">
+ </div>
+ </div>
+ `;
+ } else if (ourD.label == "AED") {
+ dom = `
+ <div class="mobiletag-entitys-box">
+ <div class="tag-content">
+ ${data[k].mechanismname}
+ </div>
+ <div class="tag-angle-content">
+ <img src="${ourD.imgSrc}">
+ </div>
+ </div>
+ `;
+ } else if (ourD.label == "停车") {
+ dom = `
+ <div class="park-entitys-box">
+ <div class="park-title" alt="${data[k].mechanismname}">
+ </div>
+ <div class="park-sign-box">
+ <div>
+ <img src="https://map.hit.edu.cn/images/p-biao.png" width="14" height="14" alt="${data[k].mechanismname}" title="${data[k].mechanismname}">
+ </div>
+ <div>
+ <img src="https://map.hit.edu.cn/images/roadsign.png" width="5" height="21">
+ </div>
+ </div>
+ </div>
+ `;
+ } else if (ourD.label == "出入") {
+ dom = `
+ <div class="mobiletag-entitys-box-pink">
+ <div class="tag-content">
+ ${data[k].mechanismname}
+ </div>
+ <div class="tag-angle-content">
+ <img src="${ourD.imgSrc}">
+ </div>
+ </div>
+ `;
+ } else if (ourD.label == "监控") {
+ dom = `
+ <div class="mobiletag-entitys-box-pink">
+ <div class="tag-content">
+ 监控
+ </div>
+ <div class="tag-angle-content">
+ <img src="${ourD.imgSrc}">
+ </div>
+ </div>
+ `;
+ }
+ const divIcon = new that.DC.DivIcon(position[k], dom);
//订阅事件
divIcon.on(DC.MouseEventType.CLICK, (e) => {
// console.log(data[k]);
let d = {
- name: data[k].mechanismname,
+ name:
+ data[k].mechanismname ||
+ data[k].roadname ||
+ (ourD.label == "监控" ? "监控" : "无显示名字"),
bgImg: data[k].tpurl,
+ video: data[k].videourl || "",
+ from: "labels",
introduce: data[k].introduce,
};
// 定制化窗体
--
Gitblit v1.9.3