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

在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>
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Python编写的国城市轨道交通数据可视化分析项目源码+项目说明.zip ## 概述 > - 本项目是一个基于 Python 的简单数据可视化分析的小Demo。通过这个项目可以练习使用Python数据可视化分析相关的强大的库和模块,练习绘制简单的GUI界面并且连接数据库,更加深了对Python语言的学习和拓展。本项目也可作为学校的大作业、大实验实践或者课程设计等的选题项目。 > - 本项目通过多线程爬虫获取了高德地图国轨道交通的一些数据信息,高德地图这个权威的网站也保证了数据的完整可靠性,然后进行了一些简单并且有趣的数据可视化分析,另外还设计了一个GUI界面,查询数据库或者文件的一些信息。 > > - 如发现文档或者源代码有错误,欢迎大家在 `Issues` 研究讨论,欢迎大家 `Fork` 和 `Pull requests` 改善代码,十分感谢! ## 使用语言 - Python 3 ## 主要技术 * **网络编程** * **多线程** * **文件操作** * **数据库编程** * **GUI** * **数据分析** ## 导入的库和模块 ```python import json import requests from bs4 import BeautifulSoup import sqlite3 import threading import tkinter as tk from tkinter import scrolledtext import pandas as pd from pyecharts import Line, Bar, Geo import numpy as np from wordcloud import WordCloud, ImageColorGenerator import jieba import matplotlib.pyplot as plt import seaborn as sns ``` ## 项目整体思路 1. 网页分析 2. 多线程爬虫爬取信息 3. 数据保存至文件和数据库 4. 利用 tkinter 绘制 GUI 界面,实现查询线路和站点两个功能 5. 数据可视化分析 (1)直接控制台显示分析结果 (2)绘制国地图、柱状图等,生成 .html 文件 (3)绘制词云 (4)绘制柱状图、饼状图、折线图、散点图、双变量图等,生成 .png 文件 ## 运行 - 分别运行`src`文件夹的`.py`文件即可 ## 部分运行结果样例 .....
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值