uniapp中使用弹出层后,控制高德地图显隐

uniapp中使用弹出层后,控制高德地图显隐

  • 一、获取高德地图key
  • 二、下载高德地图的微信小程序sdk
  • 三、定义template模板
  • 四、定义data样式及相关方法
  • 五、相关样式

在uniapp中或者在微信小程序中,map、video等组件的优先级特别高,且无法使用z-index来控制弹出层覆盖这些组件,所以需要使用view组件的hidden属性控制map组件的显隐

一、获取高德地图key

在高德地图官网上创建应用并选择api的类型生成相应的key,以下是官方链接

高德地图key

如果不知道如何生成地图的key,以下链接是生成方法

如何生成地图key

二、下载高德地图的微信小程序sdk

这是微信小程序sdk下载地址

下载地址

三、定义template模板

<template>
	<!-- 日期选择 -->
	<view class="time_choose">
		<view class="left" @click="jumpDate(-1)">
			<text class="iconfont icon-weibiaoti34"></text>
			<text>前一天</text>
		</view>
		<view class="center">
			<text style="margin-right: 10rpx;" @click="openDateModal">{ { initialDate}}</text>
			<text class="iconfont icon-xiala2" @click="openDateModal"></text>
			<u-calendar v-model="show" :mode="mode" @change="change"></u-calendar>
		</view>
		<view class="right" @click="jumpDate(1)">
			<text>后一天</text>
			<text class="iconfont icon-weibiaoti34"></text>
		</view>
	</view>
	<view :hidden='visible'>
		<map style="width: 750rpx; height: 100vh;" :latitude="latitude" 
			:longitude="longitude" scale="12" :markers="markers">
		</map>
	</view>
</template>

四、定义data样式及相关方法

<script>
	import amap from '@/gaodemap_sdk/amap-wx.js'   //先引入sdk的js文件
	export default { 
		data() { 
			return { 
				navTitle:'地图轨迹',
				// 地图
				amapPlugin:null,
				// 小程序高德地图key
				key:'xxxxxxxxxxxx',
				// 图标点
				markers: [{ 
				  iconPath: "/static/imgs/location.png",
				  id: 0,
				  latitude: 40.05308742349665,
				  longitude: 116.30196322415159,
				  width: 23,
				  height: 33
				},{ 
				  iconPath: "/static/imgs/location.png",
				  id: 0,
				  latitude: 40.0616231231,
				  longitude: 116.534446000,
				  width: 24,
				  height: 34
				}],
				// 中心点
				latitude: 40.05308742349665,
				longitude: 116.30196322415159,
				// 日历数据
				show: false,
				visible:false,   //控制地图显隐
				mode: 'date',
				initialDate:'2020-11-01',  //日期组件初始时间
				start_time:'',  //获取轨迹的开始时间
				end_time:''  //获取轨迹的结束时间
			}
		},
		onLoad(options) { 
			// 显示地图
			this.amapPlugin = new amap.AMapWX({ 
				key:this.key
			})		
		},
		methods: { 
			// 日期选择
			change(e) { 
				this.initialDate = e.result
				this.start_time = this.initialDate + ' 00:00:00'
				this.visible = false
			},
			// 打开日期框
			openDateModal(){ 
				this.show = true
				this.visible = true
			},
		}// 监听日期弹出框的改变,从而改变map的显隐
		watch:{ 
			show(val){ 
				if(val==false){ 
					this.visible = false
				}
			}
		}
	}
</script>

五、相关样式

<style lang="less"> #map_track{ 
		.time_choose{ 
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: 20rpx;
			margin-bottom: 20rpx; .left{ 
				color: #0c73fe; .iconfont{ 
					display: inline-block;
					transform: rotate(180deg);
					margin-right: 10rpx;
				}
			}
			.right{ 
				color: #0c73fe; .iconfont{ 
					margin-left: 10rpx;
				}
			}
		}
	}
</style>

本文地址:https://blog.csdn.net/qq_43958325/article/details/110238470

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐