From 72ccdcf0a6063003d940295c0d4d671b1ea6dd2b Mon Sep 17 00:00:00 2001 From: qubiaobiao <3294694717@qq.com> Date: Thu, 7 Mar 2024 12:18:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=82=B9=E5=87=BB=E5=9C=B0?= =?UTF-8?q?=E7=82=B9=E6=A0=87=E7=82=B9=EF=BC=8C=E5=BC=B9=E5=87=BA=E5=9C=B0?= =?UTF-8?q?=E7=82=B9=E4=BF=A1=E6=81=AF=E5=BC=B9=E7=AA=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Earth.vue | 5 +--- src/components/LandMarkShow.vue | 5 ++-- src/components/Pin.vue | 45 +++++++++++++++++---------------- src/information/landmark.js | 6 +++++ src/stores/LandMarkShow.js | 1 + src/stores/LandMarkWindow.js | 1 + 6 files changed, 35 insertions(+), 28 deletions(-) diff --git a/src/components/Earth.vue b/src/components/Earth.vue index 85d271a..bd50c11 100644 --- a/src/components/Earth.vue +++ b/src/components/Earth.vue @@ -50,11 +50,8 @@ const projectionTransforms = { from: "GCJ02", to: "WGS84" }; const img_url = "https://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&style=6"; const ann_url = "https://webst01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&style=8"; -let Cesium = null, - viewer = null; const ready = (readyObj) => { - Cesium = readyObj.Cesium; - viewer = readyObj.viewer; + window.viewer = readyObj.viewer; viewer._selectionIndicator = false; //不显示选中指示器 diff --git a/src/components/LandMarkShow.vue b/src/components/LandMarkShow.vue index ca7d9cb..41929ce 100644 --- a/src/components/LandMarkShow.vue +++ b/src/components/LandMarkShow.vue @@ -13,7 +13,7 @@

{{LandMarkShow.information.landTitle}}

-

{{LandMarkShow.information.landDescribes}}

+

{{LandMarkShow.information.landBriefly}}

@@ -183,7 +183,7 @@ const close = () => { .brieflyTitle { color: #fff; text-align: left; - margin: 0; + margin-bottom: 1%; font-size: clamp(0.6rem, 0.489rem + 1.05vw, 1.2rem); } .brieflyParagraph { @@ -191,6 +191,7 @@ const close = () => { font-size: clamp(0.4rem, 0.489rem + 1.05vw, 0.8rem); text-align: left; text-indent: 2em; + margin-top: 0; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; diff --git a/src/components/Pin.vue b/src/components/Pin.vue index f6e2ae8..d51d310 100644 --- a/src/components/Pin.vue +++ b/src/components/Pin.vue @@ -49,13 +49,15 @@ const jump = ref(1); const jumpSwitch = ref(true); const jumpColor = ref("none"); -let Cesium = null, - viewer = null, - handler = null; +let handler = null, + computTime = null; //标点动画 -const animetion = () => { - setInterval(() => { +const animetion = (clearit) => { + if(!clearit){ + clearInterval(computTime); + }else{ + computTime = setInterval(() => { if (0.5 <= jump.value < 1.1 && jumpSwitch.value) { jump.value = Math.round(jump.value * 100) / 100 + 0.05; jumpColor.value = "none"; @@ -71,26 +73,28 @@ const animetion = () => { jumpColor.value = "rgba(0,255,255,0.5)"; } } - }, 100); + }, 100); + }; }; const ready = (readyObj) => { - Cesium = readyObj.Cesium; - viewer = readyObj.viewer; handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); - viewer.scene.postRender.addEventListener(() => { + if (props.pintype == "landmark") { + viewer.scene.postRender.addEventListener(() => { if (viewer.camera.positionCartographic.height < 100000) { landshow.value = true; } else { landshow.value = false; } }); - if (props.pintype == "landmark") { - animetion(); } }; -let landTitle, landDescribes, landImgUrl, landPosition, landImgCount; +watch(landshow,() => { + animetion(landshow.value); +}) + +let landArr = {}; const insetLand = () => { landmarkArr.forEach((element) => { @@ -98,11 +102,12 @@ const insetLand = () => { element.position.lng == props.position.lng && element.position.lat == props.position.lat ) { - landTitle = element.landmark; - landDescribes = element.describes; - landImgUrl = element.imgUrl; - landPosition = element.position; - landImgCount = element.imgCount; + landArr.landTitle = element.landmark; + landArr.landDescribes = element.describes; + landArr.landBriefly = element.briefly; + landArr.landImgUrl = element.imgUrl; + landArr.landPosition = element.position; + landArr.landImgCount = element.imgCount; } }); } @@ -115,11 +120,7 @@ const clearDiv = (id) => { const addDynamicLabel = (data) => { insetLand(); - LandMarkWindow.information.landTitle = landTitle; - LandMarkWindow.information.landDescribes = landDescribes; - LandMarkWindow.information.landImgUrl = landImgUrl; - LandMarkWindow.information.landPosition = landPosition; - LandMarkWindow.information.landImgCount = landImgCount; + LandMarkWindow.information = landArr; LandMarkWindow.windowShow = true; LandMarkWindow.hiddenWindow = false; let gisPosition = data.position._value; diff --git a/src/information/landmark.js b/src/information/landmark.js index 8de5e84..3f1c6d9 100644 --- a/src/information/landmark.js +++ b/src/information/landmark.js @@ -5,6 +5,7 @@ export const landmarkArr = [ lng:116.391243, lat:39.907202 }, + briefly:`天安门(Tian'anmen),始建于明朝永乐十五年(1417年),设计者为明代御用建筑匠师蒯祥。`, describes:`天安门(Tian'anmen),坐落在中华人民共和国首都北京市的中心、故宫的南端,与天安门广场以及人民英雄纪念碑、毛主席纪念堂、人民大会堂、中国国家博物馆隔长安街相望,占地面积4800平方米,以杰出的建筑艺术和特殊的政治地位为世人所瞩目。 天安门是明清两代北京皇城的正门,始建于明朝永乐十五年(1417年),最初名“承天门”,寓“承天启运、受命于天”之意。设计者为明代御用建筑匠师蒯祥。清朝顺治八年(1651年)更名为天安门。由城台和城楼两部分组成,有汉白玉石的须弥座,总高34.7米。天安门城楼长66米、宽37米。城台下有券门五阙,中间的券门最大,位于北京市皇城中轴线上,过去只有皇帝才可以由此出入。正中门洞上方悬挂着毛泽东画像,两边分别是“中华人民共和国万岁”和“世界人民大团结万岁”的大幅标语。 1925年10月10日,故宫博物院成立,天安门开始对民众开放。1949年10月1日,在这里举行了中华人民共和国开国大典,由此被设计入国徽,并成为中华人民共和国的象征。1961年,中华人民共和国国务院公布为第一批全国重点文物保护单位之一。`, @@ -17,6 +18,7 @@ export const landmarkArr = [ lng:116.390502, lat:39.991396 }, + briefly:`国家体育场(National Stadium),又名“鸟巢”(Bird's Nest),位于北京奥林匹克公园中心区南部,为2008年北京奥运会的主体育场。`, describes:`国家体育场(National Stadium),又名“鸟巢”(Bird's Nest),位于北京奥林匹克公园中心区南部,为2008年北京奥运会的主体育场,举行了2008年夏季奥运会、残奥会开闭幕式、田径比赛及足球比赛决赛,以及2022年冬季奥运会、冬残奥会开闭幕式。 体育场占地20.4万平方米,建筑面积25.8万平方米,可容纳观众9.1万人,其中正式座位8万个,临时座位1.1万个;由雅克·赫尔佐格、德梅隆、艾未未以及李兴钢等设计,由北京城建集团负责施工。体育场的形态如同孕育生命的“巢”和摇篮,寄托着人类对未来的希望。设计者们对这个场馆没有做任何多余的处理,把结构暴露在外,因而自然形成了建筑的外观。 2003年12月24日开工建设,2008年3月完工,总造价22.67亿元。作为国家标志性建筑,2008年奥运会主体育场,国家体育场结构特点十分显著。体育场为特级体育建筑,大型体育场馆。主体结构设计使用年限100年,耐火等级为一级,抗震设防烈度8度,地下工程防水等级1级。2008年奥运会后,国家体育场成为北京市民参与体育活动及享受体育娱乐的大型专业场所,并成为地标性的体育建筑和奥运遗产。`, @@ -29,6 +31,7 @@ export const landmarkArr = [ lng:121.495263, lat:31.241829 }, + briefly:`东方明珠广播电视塔,简称“东方明珠”(Oriental Pearl),位于上海市浦东新区陆家嘴世纪大道1号,地处黄浦江畔,为亚洲第六高塔、世界第九高塔。`, describes:`东方明珠广播电视塔,简称“东方明珠”(Oriental Pearl),位于上海市浦东新区陆家嘴世纪大道1号,地处黄浦江畔,背拥陆家嘴地区现代化建筑楼群,与隔江的外滩万国建筑博览群交相辉映,1991年7月30日动工建造,1994年10月1日建成投入使用,是集都市观光、时尚餐饮、购物娱乐、历史陈列、浦江游览、会展演出、广播电视发射等多功能于一体的上海市标志性建筑之一。截至2019年,为亚洲第六高塔、世界第九高塔。东方明珠广播电视塔主体为多筒结构,由3根斜撑、3根立柱及广场、塔座、下球体、5个小球体、上球体、太空舱、发射天线桅杆等构成,总高468米,总建筑面积达10万平方米。1995年,东方明珠广播电视塔被评为上海十大新景观之一。1999年,东方明珠广播电视塔获上海市优秀勘察设计一等奖、中国土木工程詹天佑奖。2007年5月8日,东方明珠广播电视塔被中华人民共和国国家旅游局批准为国家AAAAA级旅游景区。`, imgUrl:'/landmarkImg/OrientalPearl/', imgCount:8 @@ -39,6 +42,7 @@ export const landmarkArr = [ lng:114.042287, lat:22.313002 }, + briefly:`香港迪士尼乐园(Hong Kong Disneyland)位于中华人民共和国香港特别行政区新界大屿山,占地126公顷,在2005年9月12日正式开幕。`, describes:`香港迪士尼乐园(Hong Kong Disneyland)位于中华人民共和国香港特别行政区新界大屿山,占地126公顷,在2005年9月12日正式开幕,由香港特别行政区政府以及华特迪士尼公司联合经营的香港国际主题乐园有限公司建设及营运,是全球第五座、亚洲第二座、中国第一座迪士尼乐园。乐园分为9个主题园区,分别为美国小镇大街、探险世界、幻想世界、明日世界、灰熊山谷、铁甲奇侠总部、反斗奇兵大本营、迷离庄园、魔雪奇缘世界,其中灰熊山谷和迷离庄园为全球独有。园区内设有主题游乐设施、娱乐表演、互动体验、餐饮服务、商品店铺及小食亭。此外,乐园每天晚上会呈献巡游表演节目及烟花汇演。2022年10月,基建咨询服务企业AECOM联合主题娱乐协会TEA发布了《2021全球主题公园和博物馆报告》,香港迪士尼乐园入选全球主题公园Top25排行榜第21名,亚太地区Top 20主题乐园排行榜第10名。`, imgUrl:'/landmarkImg/HongKongDisneyland/', imgCount:8 @@ -49,6 +53,7 @@ export const landmarkArr = [ lng:91.117684, lat:29.656959 }, + briefly:`布达拉宫(Potala Palace)位于中国西藏自治区首府拉萨市区西北的玛布日山上,中华人民共和国国务院第一批全国重点文物保护单位之一。是世界文化遗产。`, describes:`布达拉宫(Potala Palace)位于中国西藏自治区首府拉萨市区西北的玛布日山上,是一座宫堡式建筑群,一说为吐蕃王朝赞普松赞干布为迎娶尺尊公主和文成公主而兴建;另一说为,作为松赞干布迁都拉萨后的王宫而建。于17世纪重建后,成为历代达赖喇嘛的冬宫居所,为西藏政教合一的统治中心。 布达拉宫的主体建筑为白宫和红宫两部分。整座宫殿具有藏式风格,外观13层,实际只有9层。由于它起建于山腰,大面积的石壁又屹立如峭壁,使建筑仿佛与山岗融为一体,气势雄伟。布达拉宫海拔3700米,占地总面积36万平方米,建筑总面积13万平方米,由东部的白宫、中部的红宫组成,主楼高117米。布达拉宫主体建筑的东西两侧分别向下延伸,与高大的宫墙相接。宫墙高6米,底宽4.4米,顶宽2.8米,用夯土砌筑,外包砖石。墙的东、南、西侧各有一座三层的门楼,在东南和西北角还各有一座角楼。宫墙所包围的范围全都属于布达拉宫。 布达拉宫的壁画、木雕及建筑过程中使用的金属冶炼技术均闻名于世,体现了以藏族为主,汉、蒙、满各族能工巧匠高超的技艺。1961年,布达拉宫成为了中华人民共和国国务院第一批全国重点文物保护单位之一。1994年,布达拉宫被列为世界文化遗产。`, @@ -61,6 +66,7 @@ export const landmarkArr = [ lng:102.026661, lat:28.245627 }, + briefly:`西昌卫星发射中心(英文:Xichang Satellite Launch Center,简称:XSLC,又称“西昌卫星城”),是中国卫星发射基地之一。`, describes:`西昌卫星发射中心(英文:Xichang Satellite Launch Center,简称:XSLC,又称“西昌卫星城”),是中国卫星发射基地之一。组建于1970年,是中国三大航天发射中心之一,管理使用西昌、文昌两个航天发射场。西昌发射场1982年交付使用,位于四川省凉山彝族自治州冕宁县。西昌发射场地处山区,是全球十大发射场中气候条件最为复杂的发射场之一。`, imgUrl:'/landmarkImg/XichangSatelliteLaunchCenter/', imgCount:9 diff --git a/src/stores/LandMarkShow.js b/src/stores/LandMarkShow.js index 41e5855..6b2aa7d 100644 --- a/src/stores/LandMarkShow.js +++ b/src/stores/LandMarkShow.js @@ -7,6 +7,7 @@ export const LandMarkShowStore = defineStore({ information: { landTitle: NaN, landDescribes: NaN, + landBriefly: NaN, landImgUrl: NaN, landPosition: NaN, landImgCount: NaN diff --git a/src/stores/LandMarkWindow.js b/src/stores/LandMarkWindow.js index f788cdd..c9ed8d5 100644 --- a/src/stores/LandMarkWindow.js +++ b/src/stores/LandMarkWindow.js @@ -7,6 +7,7 @@ export const LandMarkWindowStore = defineStore({ information: { landTitle: NaN, landDescribes: NaN, + landBriefly: NaN, landImgUrl: NaN, landPosition: NaN, landImgCount: NaN