Showing
6 changed files
with
155 additions
and
38 deletions
This diff is collapsed. Click to expand it.
| ... | @@ -12,11 +12,13 @@ | ... | @@ -12,11 +12,13 @@ |
| 12 | "cypress:open": "cypress open" | 12 | "cypress:open": "cypress open" |
| 13 | }, | 13 | }, |
| 14 | "dependencies": { | 14 | "dependencies": { |
| 15 | + "@videojs-player/vue": "^1.0.0", | ||
| 15 | "@vitejs/plugin-legacy": "^1.8.2", | 16 | "@vitejs/plugin-legacy": "^1.8.2", |
| 16 | "@vueuse/core": "^8.5.0", | 17 | "@vueuse/core": "^8.5.0", |
| 17 | "animate.css": "^4.1.1", | 18 | "animate.css": "^4.1.1", |
| 18 | "dayjs": "^1.11.3", | 19 | "dayjs": "^1.11.3", |
| 19 | "default-passive-events": "^2.0.0", | 20 | "default-passive-events": "^2.0.0", |
| 21 | + "font-awesome": "^4.7.0", | ||
| 20 | "global": "^4.4.0", | 22 | "global": "^4.4.0", |
| 21 | "html2canvas": "^1.4.1", | 23 | "html2canvas": "^1.4.1", |
| 22 | "jquery": "^3.6.0", | 24 | "jquery": "^3.6.0", |
| ... | @@ -30,6 +32,7 @@ | ... | @@ -30,6 +32,7 @@ |
| 30 | "uuid": "^8.3.2", | 32 | "uuid": "^8.3.2", |
| 31 | "vant": "^4.0.0-alpha.3", | 33 | "vant": "^4.0.0-alpha.3", |
| 32 | "vconsole": "^3.14.6", | 34 | "vconsole": "^3.14.6", |
| 35 | + "video.js": "^8.3.0", | ||
| 33 | "vite-plugin-dynamic-import": "^0.9.6", | 36 | "vite-plugin-dynamic-import": "^0.9.6", |
| 34 | "vite-plugin-mp": "^1.6.1", | 37 | "vite-plugin-mp": "^1.6.1", |
| 35 | "vue": "^3.2.36", | 38 | "vue": "^3.2.36", | ... | ... |
| ... | @@ -109,6 +109,41 @@ var spotInfo = [ | ... | @@ -109,6 +109,41 @@ var spotInfo = [ |
| 109 | position: [120.585948, 31.315095], | 109 | position: [120.585948, 31.315095], |
| 110 | icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', | 110 | icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', |
| 111 | }, | 111 | }, |
| 112 | + { | ||
| 113 | + name: '罗汉堂', | ||
| 114 | + position: [120.58764, 31.315011], | ||
| 115 | + icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', | ||
| 116 | + note: `与观音殿遥相呼应的是罗汉堂,位于大雄宝殿西侧。西园寺罗汉堂为中国四大古罗汉堂之一。 | ||
| 117 | + | ||
| 118 | + 西园罗汉堂创建于明末,咸丰时即倾颓于战火。现仅存第一进石拱门的圆框及左右门券石,雕刻精美,为明代遗物,历经岁月摩娑,光泽内敛。如今,我们只能从遗物的精美雕刻,遥想旧时沧桑及这一不复存在的胜迹。现有的罗汉堂,为同治、光绪年间陆续重葺。屋宇深广,共三进四十八间。整体建筑呈田字形布局,中心雕塑周围有小天井四座,给幽深曲折的殿堂提供了良好的通风和采光条件。 | ||
| 119 | + | ||
| 120 | + 从空中俯瞰,罗汉堂黛瓦覆顶,组成一个汉字的“田”字。象征在佛教里僧宝,是一切世间供养、布施、修福的无上福田,五百罗汉则是贤圣僧的代表。 | ||
| 121 | + | ||
| 122 | + | ||
| 123 | + 除了俯瞰的“田”字,在罗汉堂地下,还有一项隐秘而巧妙的设计——西边放生池的水源经过罗汉堂地下隐秘水道弯曲绕行,流经罗汉堂,最终汇聚到大雄宝殿露台前的香花桥下。这不仅让西园寺内基础水池串联成一片活水,更重要和巧妙地解决了罗汉堂内的湿度调节问题。因五百罗汉为泥胎雕塑,过于干燥的空气将会造成古老的泥塑造像干裂、风化、剥落等一系列问题,而地下隐暗水道的设计,则有效保证罗汉堂内的湿度能控制在一定范围内。于此,不得不叹服先人的智慧。 | ||
| 124 | + | ||
| 125 | + 罗汉堂原有的建筑较为低矮,不仅光线昏暗、空气浑浊,而且年深日久,梁柱有不同程度的老旧腐化。一九九七年七月,寺院对罗汉堂进行了全面整修,历时半年。在落架大修过程中,既遵照文物修旧如旧的原则,又以创新的精神,适应形势发展的需要,大胆将罗汉堂屋顶升高六十厘米,并加了斗拱,既利于文物的保护,又极大改善了罗汉堂采光环境,使整个罗汉堂显得美观大方,吸引了众多的信众前来瞻礼,使古寺焕发出崭新的光彩,成为名副其实的吴中胜地。` | ||
| 126 | + }, | ||
| 127 | + { | ||
| 128 | + name: '大雄宝殿', | ||
| 129 | + position: [120.587249, 31.314722], | ||
| 130 | + icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', | ||
| 131 | + note: `大雄宝殿是寺院的中心建筑,兴建于清末民初时期。重檐歇山,面阔七楹,飞檐翘角,气势雄伟,风格挺秀。梁枋均施苏式彩绘,典雅富丽,绚丽夺目。 | ||
| 132 | + | ||
| 133 | + 大殿二重檐下,悬“大雄宝殿”四个遒劲有力的金字,气势雄浑,据说这四个字是陆润庠所提。陆润庠是苏州历史上第五十五位,也是最后一位状元,官至一品、大学士(即宰相级别)。大雄宝殿是佛教寺院中供奉佛像的正殿,是整座寺院的核心建筑,也是僧众朝暮集中修持的地方。因释迦牟尼佛德号“大雄”,所以称大雄宝殿。为什么叫大雄?大者,是包含万有的意思;雄者,是摄伏群魔的意思。释迦牟尼佛具足圆觉智慧,能雄镇大千世界,降伏四魔(烦恼魔、阴魔、死魔、自在天魔),因此尊称佛陀为大雄。 | ||
| 134 | + | ||
| 135 | + 檐枋悬有三块匾额,中门之上为“西乾应迹”匾额。西者西方,乾者天也,西乾即是指佛教的发源地古印度,因当时地处中国的西方而得名,相应地,中国则被称为东土。应迹谓应化垂迹,即佛、菩萨应众生之机缘而将其本体示现种种身以济度众生。 | ||
| 136 | + | ||
| 137 | + 东门上为“焰网庄严”匾额,出处为《药师经》第二大愿:“身善能安住,焰网庄严,过于日月”,即所谓“药师如来琉璃光,焰网庄严无等伦”,形容的是东方药师佛世界;西门上为“光寿无量”匾额,是“无量寿、无量光”的意思,意指西方阿弥陀佛光寿无量。“三个匾额”与殿内供奉的“横世三佛”内外呼应。与“西乾应迹”相呼应的中间一尊佛像是释迦摩尼佛,大迦叶尊者与阿难尊者分立两侧;与“焰网庄严”相呼应的则是药师佛,位于东侧;与“光寿无量”相呼应的则是阿弥陀佛,位于西侧。几尊佛像均是香樟木雕刻,是现存不多的清时期极具代表性的大型木雕造像。三尊佛像下莲花座、金刚须弥座雕刻精美、令人叹为观止。 | ||
| 138 | + | ||
| 139 | + 大殿内有三副抱柱楹联,外侧上联为“东震涌庄严,看桥通鹤市,山近虎丘,招提久占三吴胜”;下联为“西来参本意,任侠士流芳,生公说法,照澈都归五蕴空”。“鹤市”,阖闾女亡,出殡时,鹤舞于阊门,后以鹤市代指阊门。“生公说法”,是指南北朝的高僧竺道生在虎丘山上说法,最后顽石也点头赞同的典故。后有题记:“乙丑(1925)春仲,郡人许人俊谨题”。 | ||
| 140 | + | ||
| 141 | + 内侧有两副,内外上联为“宝相瞻大雄,象法禅机垂正觉”;下联为“劳生来小息,鱼音梵呗涤尘烦”;“余姚黄雨斋撰立,江东浦泳谨书”。 | ||
| 142 | + | ||
| 143 | + 内中上联为“海国启琳宫,宏法利生扬正教”;下联为“灵山闻妙谛,觉迷度苦感仁王”;“弟子夏士魁长发头陀敬献,江东浦泳谨书”。 | ||
| 144 | + | ||
| 145 | + 两副对联均作于民国三十三年(1944),其中“感仁王”三字年久剥落,1985年浦泳老先生重游西园寺,见字残缺,说“趁我有生之年,把字补好”。不久果寄来字样,重修时已把字补上,亦可告慰于浦老矣!` | ||
| 146 | + }, | ||
| 112 | ]; | 147 | ]; |
| 113 | 148 | ||
| 114 | var toiletInfo = [ | 149 | var toiletInfo = [ | ... | ... |
| ... | @@ -2,8 +2,8 @@ | ... | @@ -2,8 +2,8 @@ |
| 2 | * @Author: hookehuyr hookehuyr@gmail.com | 2 | * @Author: hookehuyr hookehuyr@gmail.com |
| 3 | * @Date: 2022-05-31 12:06:19 | 3 | * @Date: 2022-05-31 12:06:19 |
| 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 5 | - * @LastEditTime: 2022-06-29 22:00:37 | 5 | + * @LastEditTime: 2023-05-30 13:12:21 |
| 6 | - * @FilePath: /tswj/src/main.js | 6 | + * @FilePath: /map-demo/src/main.js |
| 7 | * @Description: | 7 | * @Description: |
| 8 | */ | 8 | */ |
| 9 | import { createApp } from 'vue'; | 9 | import { createApp } from 'vue'; |
| ... | @@ -14,6 +14,10 @@ import App from './App.vue'; | ... | @@ -14,6 +14,10 @@ import App from './App.vue'; |
| 14 | import axios from '@/utils/axios'; | 14 | import axios from '@/utils/axios'; |
| 15 | // import 'default-passive-events'; // 解决Chrome控制台non-passive event listener输出问题 | 15 | // import 'default-passive-events'; // 解决Chrome控制台non-passive event listener输出问题 |
| 16 | import { createPinia } from 'pinia'; | 16 | import { createPinia } from 'pinia'; |
| 17 | +import 'font-awesome/css/font-awesome.min.css'; | ||
| 18 | + | ||
| 19 | +import VueVideoPlayer from '@videojs-player/vue'; | ||
| 20 | +import 'video.js/dist/video-js.css'; | ||
| 17 | 21 | ||
| 18 | const pinia = createPinia(); | 22 | const pinia = createPinia(); |
| 19 | const app = createApp(App); | 23 | const app = createApp(App); |
| ... | @@ -22,4 +26,6 @@ app.config.globalProperties.$http = axios; // 关键语句 | ... | @@ -22,4 +26,6 @@ app.config.globalProperties.$http = axios; // 关键语句 |
| 22 | 26 | ||
| 23 | app.use(pinia).use(router).use(Button).use(VanImage).use(Col).use(Row).use(Icon).use(Form).use(Field).use(CellGroup).use(Toast).use(Uploader).use(Empty).use(Tab).use(Tabs).use(Overlay).use(NumberKeyboard).use(Lazyload).use(List).use(PullRefresh).use(Popup).use(Picker).use(Sticky).use(Stepper).use(Tag).use(Swipe).use(SwipeItem).use(Dialog).use(ActionSheet).use(Loading).use(Checkbox).use(Search).use(ConfigProvider); | 27 | app.use(pinia).use(router).use(Button).use(VanImage).use(Col).use(Row).use(Icon).use(Form).use(Field).use(CellGroup).use(Toast).use(Uploader).use(Empty).use(Tab).use(Tabs).use(Overlay).use(NumberKeyboard).use(Lazyload).use(List).use(PullRefresh).use(Popup).use(Picker).use(Sticky).use(Stepper).use(Tag).use(Swipe).use(SwipeItem).use(Dialog).use(ActionSheet).use(Loading).use(Checkbox).use(Search).use(ConfigProvider); |
| 24 | 28 | ||
| 29 | +app.use(VueVideoPlayer) | ||
| 30 | + | ||
| 25 | app.mount('#app'); | 31 | app.mount('#app'); | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2023-05-19 14:54:27 | 2 | * @Date: 2023-05-19 14:54:27 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2023-05-29 18:12:10 | 4 | + * @LastEditTime: 2023-05-30 13:45:04 |
| 5 | * @FilePath: /map-demo/src/views/index.vue | 5 | * @FilePath: /map-demo/src/views/index.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| 8 | <template> | 8 | <template> |
| 9 | <div style="height: 100vh; position: relative;"> | 9 | <div style="height: 100vh; position: relative;"> |
| 10 | <div id="container"></div> | 10 | <div id="container"></div> |
| 11 | - <div class="input-card"> | ||
| 12 | - <!-- <div class="input-item"> | ||
| 13 | - <span @click="showPublic" class="btn">显示公共设施</span> | ||
| 14 | - <span @click="hidePublic" class="btn">隐藏公共设施</span> | ||
| 15 | - </div> --> | ||
| 16 | - <!-- <div class="input-item"> | ||
| 17 | - <button class="btn" @click="addLayer" style="margin-right:1rem;">添加图层</button> | ||
| 18 | - <button class="btn" @click="removeLayer">删除图层</button> | ||
| 19 | - </div> --> | ||
| 20 | - <div class="input-item"> | ||
| 21 | - <!-- <button class="btn" @click="setLocation" style="margin-right:1rem;">定位服务</button> | ||
| 22 | - <button class="btn" @click="addLocation" style="margin-right:1rem;">添加定位路线</button> | ||
| 23 | - <button class="btn" @click="removeLocation" style="margin-right:1rem;">删除定位路线</button> --> | ||
| 24 | - <button class="btn" @click="setTitleLayer" style="margin-right:1rem;">添加贴片</button> | ||
| 25 | - </div> | ||
| 26 | - <div class="input-item"> | ||
| 27 | - <button class="btn" @click="setWalkRoute" style="margin-right:1rem;">步行导航</button> | ||
| 28 | - <button class="btn" @click="removeWalkRoute" style="margin-right:1rem;">移除步行导航</button> | ||
| 29 | - </div> | ||
| 30 | - </div> | ||
| 31 | <div class="nav-bar-wrapper"> | 11 | <div class="nav-bar-wrapper"> |
| 32 | <van-row> | 12 | <van-row> |
| 33 | <van-col span="8" :class="[isActive === 0 ? 'checked' : '', 'item']" @click="setNavLayer(0)"> | 13 | <van-col span="8" :class="[isActive === 0 ? 'checked' : '', 'item']" @click="setNavLayer(0)"> |
| 34 | - <van-icon name="shop-o" size="1.25rem" /><br/> | 14 | + <van-icon name="shop-o" size="1.25rem" /><br /> |
| 35 | <span style="font-size: 0.85rem;">景区信息</span> | 15 | <span style="font-size: 0.85rem;">景区信息</span> |
| 36 | </van-col> | 16 | </van-col> |
| 37 | <van-col span="8" :class="[isActive === 1 ? 'checked' : '', 'item']" @click="setNavLayer(1)"> | 17 | <van-col span="8" :class="[isActive === 1 ? 'checked' : '', 'item']" @click="setNavLayer(1)"> |
| 38 | - <van-icon name="shop-o" size="1.25rem" /><br/> | 18 | + <van-icon name="shop-o" size="1.25rem" /><br /> |
| 39 | <span style="font-size: 0.85rem;">卫生间</span> | 19 | <span style="font-size: 0.85rem;">卫生间</span> |
| 40 | </van-col> | 20 | </van-col> |
| 41 | <van-col span="8" :class="[isActive === 2 ? 'checked' : '', 'item']" @click="setNavLayer(2)"> | 21 | <van-col span="8" :class="[isActive === 2 ? 'checked' : '', 'item']" @click="setNavLayer(2)"> |
| 42 | - <van-icon name="shop-o" size="1.25rem" /><br/> | 22 | + <van-icon name="shop-o" size="1.25rem" /><br /> |
| 43 | <span style="font-size: 0.85rem;">活动中心</span> | 23 | <span style="font-size: 0.85rem;">活动中心</span> |
| 44 | </van-col> | 24 | </van-col> |
| 45 | </van-row> | 25 | </van-row> |
| ... | @@ -49,12 +29,42 @@ | ... | @@ -49,12 +29,42 @@ |
| 49 | <span v-else @click="handleSafeRoute(false)">关闭安全路线</span> | 29 | <span v-else @click="handleSafeRoute(false)">关闭安全路线</span> |
| 50 | </div> | 30 | </div> |
| 51 | <div class="tool-bar-wrapper"> | 31 | <div class="tool-bar-wrapper"> |
| 32 | + <div style="display: flex; flex-direction: column;align-items: center;justify-content: center;"> | ||
| 52 | <van-icon name="plus" style="margin-bottom: 1rem;" @click="setZoom('plus')" /> | 33 | <van-icon name="plus" style="margin-bottom: 1rem;" @click="setZoom('plus')" /> |
| 53 | <van-icon name="minus" style="margin-bottom: 1rem;" @click="setZoom('minus')" /> | 34 | <van-icon name="minus" style="margin-bottom: 1rem;" @click="setZoom('minus')" /> |
| 54 | <van-icon name="aim" @click="setLocation" /> | 35 | <van-icon name="aim" @click="setLocation" /> |
| 55 | </div> | 36 | </div> |
| 56 | - <van-popup v-model:show="show_popup" position="bottom" :overlay="false" closeable | 37 | + </div> |
| 57 | - :style="{ padding: '64px' }">内容</van-popup> | 38 | + <div class="operate-bar-wrapper"> |
| 39 | + <div class="box-wrapper"> | ||
| 40 | + <div class="item" @click="setTitleLayer"> | ||
| 41 | + <i class="fa fa-cube"></i><br /> | ||
| 42 | + 贴片 | ||
| 43 | + </div> | ||
| 44 | + <div v-if="show_walk_route" class="item" @click="setWalkRoute"> | ||
| 45 | + <i class="fa fa-eye"></i><br /> | ||
| 46 | + 步行 | ||
| 47 | + </div> | ||
| 48 | + <div v-else class="item" @click="removeWalkRoute"> | ||
| 49 | + <i class="fa fa-eye-slash"></i><br /> | ||
| 50 | + 步行 | ||
| 51 | + </div> | ||
| 52 | + </div> | ||
| 53 | + </div> | ||
| 54 | + <van-popup v-model:show="show_popup" position="bottom" :overlay="true" :style="{ padding: '1rem' }"> | ||
| 55 | + <van-icon name="cross" @click="show_popup = false" style="float: right; color: gray;" /> | ||
| 56 | + <div class="popup-wrapper"> | ||
| 57 | + <div class="title"> | ||
| 58 | + {{ popup_title }} | ||
| 59 | + </div> | ||
| 60 | + <div class="content" v-html="popup_content"> | ||
| 61 | + </div> | ||
| 62 | + <video-player ref="videoPlayer" style="width: 100%; height: 10rem;" | ||
| 63 | + poster="https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100" | ||
| 64 | + :src="video_src" | ||
| 65 | + class="video-player vjs-big-play-centered" controls :loop="true" :volume="0.6"></video-player> | ||
| 66 | + </div> | ||
| 67 | + </van-popup> | ||
| 58 | 68 | ||
| 59 | <van-dialog v-model:show="dialog_show" title="温馨提示"> | 69 | <van-dialog v-model:show="dialog_show" title="温馨提示"> |
| 60 | <div style="padding: 1rem; text-align: center;">您不在景区范围内</div> | 70 | <div style="padding: 1rem; text-align: center;">您不在景区范围内</div> |
| ... | @@ -68,6 +78,7 @@ | ... | @@ -68,6 +78,7 @@ |
| 68 | import coord from '@/common/tiantan_v2' | 78 | import coord from '@/common/tiantan_v2' |
| 69 | // import AMap from 'AMap' | 79 | // import AMap from 'AMap' |
| 70 | import _ from 'lodash'; | 80 | import _ from 'lodash'; |
| 81 | +import $ from 'jquery'; | ||
| 71 | 82 | ||
| 72 | const GPS = { | 83 | const GPS = { |
| 73 | PI: 3.14159265358979324, | 84 | PI: 3.14159265358979324, |
| ... | @@ -168,7 +179,11 @@ export default { | ... | @@ -168,7 +179,11 @@ export default { |
| 168 | toolBar: '', | 179 | toolBar: '', |
| 169 | isActive: 0, | 180 | isActive: 0, |
| 170 | safe_route: [], | 181 | safe_route: [], |
| 171 | - open_safe_route: true | 182 | + open_safe_route: true, |
| 183 | + show_walk_route: true, | ||
| 184 | + popup_title: '', | ||
| 185 | + popup_content: '', | ||
| 186 | + video_src: '' | ||
| 172 | } | 187 | } |
| 173 | }, | 188 | }, |
| 174 | mounted() { | 189 | mounted() { |
| ... | @@ -183,6 +198,17 @@ export default { | ... | @@ -183,6 +198,17 @@ export default { |
| 183 | // 打开贴片地图 | 198 | // 打开贴片地图 |
| 184 | // this.setTitleLayer() | 199 | // this.setTitleLayer() |
| 185 | }, | 200 | }, |
| 201 | + watch: { | ||
| 202 | + show_popup(val) { | ||
| 203 | + if (!val) { | ||
| 204 | + this.$nextTick(() => { | ||
| 205 | + // 弹框关闭时,暂停视频 | ||
| 206 | + $('.vjs-tech')[0].pause(); | ||
| 207 | + $('.vjs-tech')[0].currentTime = 0; | ||
| 208 | + }) | ||
| 209 | + } | ||
| 210 | + } | ||
| 211 | + }, | ||
| 186 | methods: { | 212 | methods: { |
| 187 | // addMarker () { | 213 | // addMarker () { |
| 188 | // // axios.get('http://api.map.baidu.com/location/ip?ak=CzpAXV4bhyqCKnWpQqLRkS1i&coor=bd09ll') | 214 | // // axios.get('http://api.map.baidu.com/location/ip?ak=CzpAXV4bhyqCKnWpQqLRkS1i&coor=bd09ll') |
| ... | @@ -480,7 +506,11 @@ export default { | ... | @@ -480,7 +506,11 @@ export default { |
| 480 | } | 506 | } |
| 481 | // 绑定景点的点击事件 - 文字出现才能触发 | 507 | // 绑定景点的点击事件 - 文字出现才能触发 |
| 482 | var clickListener = marker.on('click', (e) => { | 508 | var clickListener = marker.on('click', (e) => { |
| 483 | - infoWindow.open(this.map); | 509 | + // infoWindow.open(this.map); |
| 510 | + this.show_popup = true; | ||
| 511 | + this.popup_title = x.name; | ||
| 512 | + this.popup_content = x.note; | ||
| 513 | + this.video_src = 'https://video.pearvideo.com/mp4/short/20200209/cont-1650197-14888002-hd.mp4' | ||
| 484 | }) | 514 | }) |
| 485 | // | 515 | // |
| 486 | this.spotInfo.push(marker); | 516 | this.spotInfo.push(marker); |
| ... | @@ -660,7 +690,7 @@ export default { | ... | @@ -660,7 +690,7 @@ export default { |
| 660 | }) | 690 | }) |
| 661 | }); | 691 | }); |
| 662 | }, | 692 | }, |
| 663 | - setZoom (type) { // 设置放大缩小地图 | 693 | + setZoom(type) { // 设置放大缩小地图 |
| 664 | const zoom = this.map.getZoom(); | 694 | const zoom = this.map.getZoom(); |
| 665 | if (type === 'plus') { | 695 | if (type === 'plus') { |
| 666 | this.map.setZoom(zoom + 1) | 696 | this.map.setZoom(zoom + 1) |
| ... | @@ -718,7 +748,7 @@ export default { | ... | @@ -718,7 +748,7 @@ export default { |
| 718 | var layer = new AMap.TileLayer.Flexible({ | 748 | var layer = new AMap.TileLayer.Flexible({ |
| 719 | cacheSize: 30, | 749 | cacheSize: 30, |
| 720 | opacity: 1, | 750 | opacity: 1, |
| 721 | - zIndex: 2, | 751 | + zIndex: 100, |
| 722 | createTile: function (x, y, z, success, fail) { | 752 | createTile: function (x, y, z, success, fail) { |
| 723 | // if ((x + y) % 3) { | 753 | // if ((x + y) % 3) { |
| 724 | // fail(); | 754 | // fail(); |
| ... | @@ -828,18 +858,20 @@ export default { | ... | @@ -828,18 +858,20 @@ export default { |
| 828 | } | 858 | } |
| 829 | } | 859 | } |
| 830 | AMap.plugin(["AMap.Walking"], () => { //加载步行导航插件 | 860 | AMap.plugin(["AMap.Walking"], () => { //加载步行导航插件 |
| 831 | - this.walk_route = new AMap.Walking ({ | 861 | + this.walk_route = new AMap.Walking({ |
| 832 | map: this.map, | 862 | map: this.map, |
| 833 | }); //构造步行导航类 | 863 | }); //构造步行导航类 |
| 834 | AMap.Event.addListener(this.walk_route, "complete", walking_CallBack); //返回导航查询结果 | 864 | AMap.Event.addListener(this.walk_route, "complete", walking_CallBack); //返回导航查询结果 |
| 835 | //根据起、终点坐标规划步行路线 | 865 | //根据起、终点坐标规划步行路线 |
| 836 | this.walk_route.search(new AMap.LngLat(120.587799, 31.313276), new AMap.LngLat(120.587912, 31.315169)); | 866 | this.walk_route.search(new AMap.LngLat(120.587799, 31.313276), new AMap.LngLat(120.587912, 31.315169)); |
| 837 | }); | 867 | }); |
| 868 | + this.show_walk_route = false; | ||
| 838 | }, | 869 | }, |
| 839 | - removeWalkRoute () { | 870 | + removeWalkRoute() { |
| 840 | - this.walk_route.clear() | 871 | + this.walk_route.clear(); |
| 872 | + this.show_walk_route = true; | ||
| 841 | }, | 873 | }, |
| 842 | - setNavLayer (index) { // 选择地图图层显示 | 874 | + setNavLayer(index) { // 选择地图图层显示 |
| 843 | this.isActive = index; | 875 | this.isActive = index; |
| 844 | if (index === 0) { | 876 | if (index === 0) { |
| 845 | this.setSpotLayer() | 877 | this.setSpotLayer() |
| ... | @@ -851,7 +883,7 @@ export default { | ... | @@ -851,7 +883,7 @@ export default { |
| 851 | this.setActivityLayer() | 883 | this.setActivityLayer() |
| 852 | } | 884 | } |
| 853 | }, | 885 | }, |
| 854 | - handleSafeRoute (status) { // 打开/关闭逃生路线线 | 886 | + handleSafeRoute(status) { // 打开/关闭逃生路线线 |
| 855 | if (status) { | 887 | if (status) { |
| 856 | this.addSafeRoute() | 888 | this.addSafeRoute() |
| 857 | this.open_safe_route = false; | 889 | this.open_safe_route = false; |
| ... | @@ -913,9 +945,10 @@ export default { | ... | @@ -913,9 +945,10 @@ export default { |
| 913 | .tool-bar-wrapper { | 945 | .tool-bar-wrapper { |
| 914 | position: absolute; | 946 | position: absolute; |
| 915 | left: 20px; | 947 | left: 20px; |
| 916 | - bottom: 40px; | 948 | + bottom: 8rem; |
| 917 | width: 20px; | 949 | width: 20px; |
| 918 | } | 950 | } |
| 951 | + | ||
| 919 | .nav-bar-wrapper { | 952 | .nav-bar-wrapper { |
| 920 | position: absolute; | 953 | position: absolute; |
| 921 | top: 0; | 954 | top: 0; |
| ... | @@ -925,17 +958,57 @@ export default { | ... | @@ -925,17 +958,57 @@ export default { |
| 925 | background-color: white; | 958 | background-color: white; |
| 926 | text-align: center; | 959 | text-align: center; |
| 927 | box-shadow: 0 2px 2px rgba(0, 0, 0, .2); | 960 | box-shadow: 0 2px 2px rgba(0, 0, 0, .2); |
| 961 | + | ||
| 928 | .item { | 962 | .item { |
| 929 | padding-top: 0.5rem; | 963 | padding-top: 0.5rem; |
| 930 | } | 964 | } |
| 965 | + | ||
| 931 | .checked { | 966 | .checked { |
| 932 | color: red; | 967 | color: red; |
| 933 | } | 968 | } |
| 934 | } | 969 | } |
| 970 | + | ||
| 935 | .safe-route-wrapper { | 971 | .safe-route-wrapper { |
| 936 | position: absolute; | 972 | position: absolute; |
| 937 | bottom: 1rem; | 973 | bottom: 1rem; |
| 938 | right: 1rem; | 974 | right: 1rem; |
| 939 | background-color: white; | 975 | background-color: white; |
| 940 | } | 976 | } |
| 977 | + | ||
| 978 | +.operate-bar-wrapper { | ||
| 979 | + position: absolute; | ||
| 980 | + right: 20px; | ||
| 981 | + top: 10%; | ||
| 982 | + width: 20px; | ||
| 983 | + height: auto; | ||
| 984 | + | ||
| 985 | + .box-wrapper { | ||
| 986 | + display: flex; | ||
| 987 | + flex-direction: column; | ||
| 988 | + align-items: center; | ||
| 989 | + justify-content: center; | ||
| 990 | + | ||
| 991 | + .item { | ||
| 992 | + text-align: center; | ||
| 993 | + font-size: 0.85rem; | ||
| 994 | + width: 2rem; | ||
| 995 | + height: 2rem; | ||
| 996 | + background-color: white; | ||
| 997 | + margin-bottom: 1rem; | ||
| 998 | + border-radius: 1px; | ||
| 999 | + padding: 2.5px; | ||
| 1000 | + } | ||
| 1001 | + } | ||
| 1002 | +} | ||
| 1003 | + | ||
| 1004 | +.popup-wrapper { | ||
| 1005 | + margin-top: 1rem; | ||
| 1006 | + | ||
| 1007 | + .title { | ||
| 1008 | + font-size: 1.25rem; | ||
| 1009 | + margin-bottom: 0.85rem; | ||
| 1010 | + } | ||
| 1011 | + | ||
| 1012 | + .content {} | ||
| 1013 | +} | ||
| 941 | </style> | 1014 | </style> | ... | ... |
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment