uniapp 地图组件(map)的使用总结

2023-11-16

总结一下本次在uniapp中使用map遇到的一些问题

文章分别是基础 定位图标  获取自身经纬度 通过经纬度获取当时城市信息

首先先看成品

 首先引入map组件 

<template>
    <view class="content">
      <map style="width: 100%; height: 90vh;" :layer-style='5'  :style="{height:mapheight}" :show-location='true'  :latitude="latitude" :longitude="longitude" :markers="marker" :scale="scale"  @markertap="markertap"   @callouttap='callouttap'>
    
       </map>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                        latitude:23.106574, //纬度
                        longitude:113.324587,//经度
                        scale:13,//缩放级别
                        bottomData:false,
                        marker: [
                                            {
                                            id:0,
                                            latitude: 23.13065,//纬度
                                            longitude: 113.3274,//经度
                                            iconPath: '',    //显示的图标        
                                            rotate:0,   // 旋转度数
                                            width:20,   //宽
                                            height:30,   //高
                                                //   title:'我在这里',//标注点名
                                            alpha:0.5,   //透明度
                                            callout:{//自定义标记点上方的气泡窗口 点击有效  
                                            content:'天宝大厦',//文本
                                            color:'#ffffff',//文字颜色
                                            fontSize:14,//文本大小
                                            borderRadius:15,//边框圆角
                                            borderWidth:'10',
                                            bgColor:'#e51860',//背景颜色
                                            display:'ALWAYS',//常显
                                            },
                                            },
                                            {
                                                    id:1234597,
                                                    latitude:  23.106574,//纬度
                                                    longitude: 113.324587,//经度
                                                    iconPath: '',    //显示的图标        
                                                    rotate:0,   // 旋转度数
                                                    width:20,   //宽
                                                height:30,   //高
                                            //  title:'我在这里',//标注点名
                                                    alpha:0.5,   //透明度
                                                //      label:{//为标记点旁边增加标签   //因背景颜色H5不支持
                                                //   color:'red',//文本颜色
                                                //      },
                                                    callout:{//自定义标记点上方的气泡窗口 点击有效  
                                                content:'广州塔',//文本
                                                color:'#ffffff',//文字颜色
                                                fontSize:14,//文本大小
                                                borderRadius:15,//边框圆角
                                                borderWidth:'10',
                                                bgColor:'#e51860',//背景颜色
                                                display:'ALWAYS',//常显
                                                },
                                            },
                                            {
                                                    id:2,
                                                    latitude:  23.1338,//纬度
                                                    longitude: 113.33052,//经度
                                                    iconPath: '',    //显示的图标        
                                                    rotate:0,   // 旋转度数
                                                  width:20,   //宽
                                                    height:30,   //高
                                                    alpha:0.5,   //透明度
                                            callout:{//自定义标记点上方的气泡窗口 点击有效  
                                                content:'德隆大厦',//文本
                                                color:'#ffffff',//文字颜色
                                                fontSize:14,//文本大小
                                                borderRadius:15,//边框圆角
                                                borderWidth:'10',
                                                bgColor:'#e51860',//背景颜色
                                                display:'ALWAYS',//常显
                                                },
                                            },
                                                {
                                                    id:3,
                                                    latitude:  23.136455,//纬度
                                                    longitude: 113.329002,//经度
                                                    iconPath: '',    //显示的图标        
                                                    rotate:0,   // 旋转度数
                                                        width:20,   //宽
                                                        height:30,   //高
                                                        alpha:0.5,   //透明度
                                                    callout:{//自定义标记点上方的气泡窗口 点击有效  
                                                    content:'羊城国际商贸中心',//文本
                                                    color:'#ffffff',//文字颜色
                                                    fontSize:14,//文本大小
                                                    borderRadius:15,//边框圆角
                                                    borderWidth:'10',
                                                    bgColor:'#e51860',//背景颜色
                                                    display:'ALWAYS',//常显
                                                    },
                                                },
                                            {
                                                    id:4,
                                                    latitude:  23.224781,//纬度
                                                    longitude: 113.293911,//经度
                                                    iconPath: '',    //显示的图标        
                                                    rotate:0,   // 旋转度数
                                                  width:20,   //宽
                                                    height:30,   //高
                                                    alpha:0.5,   //透明度
                                                callout:{//自定义标记点上方的气泡窗口 点击有效  
                                                    content:'天瑞广场A座',//文本
                                                    color:'#ffffff',//文字颜色
                                                    fontSize:16,//文本大小
                                                    borderRadius:15,//边框圆角
                                                    borderWidth:'12',
                                                    bgColor:'#e51860',//背景颜色
                                                    display:'ALWAYS',//常显
                                                },
                                                },
                                            { 
                                                        id:5,
                                                        latitude:  23.072726,//纬度
                                                        longitude: 113.277921,//经度
                                                        iconPath: '',    //显示的图标        
                                                        rotate:0,   // 旋转度数
                                                width:20,   //宽
                                                    height:30,   //高
                                                    alpha:0.5,   //透明度
                                            callout:{//自定义标记点上方的气泡窗口 点击有效  
                                                    content:'大米和小米儿童康复(广州盈丰)中心',//文本
                                                    color:'#ffffff',//文字颜色
                                                    fontSize:14,//文本大小
                                                    borderRadius:15,//边框圆角
                                                    borderWidth:'8',
                                                    bgColor:'#e51860',//背景颜色
                                                    display:'ALWAYS',//常显
                                                },
                                                },
                                        ],
            }
            },
        onLoad() {

        },
        computed:{
                    mapheight(){
                        let data =''
                        if(this.bottomData){
                            if(this.upTop){
                                data ='50px'
                            }else{
                                data ='200px'
                            }
                        }else{
                            data ='90vh'
                        }
                        return data
                    },
                    coverbottom(){
                        let data =''
                        if(this.bottomData){
                            data ='20rpx'
                        }else{
                            data ='100rpx'
                        }
                        return data
                    }
                },
        methods:{
                //地图点击事件
            markertap(e) {
                console.log("===你点击了标记点===",e)
                },
            //地图点击事件
            callouttap(e){
                console.log('地图点击事件',e)
        }
        }
    }
</script>

 得到的样式是这样

这里只给了两个回调 有更多需求可以去uniapp中搜索 map | uni-app官网

定位图标

 查了一下官方文档,发现官方文档中并没有关于定位的写法 ,没办法只能自己手写一个了。

<template>
		<view class="page-section page-section-gap map-container">
					<map style="width: 100%; height: 90vh;" :layer-style='5'  :style="{height:mapheight}" :show-location='true'  :latitude="latitude" :longitude="longitude" :markers="marker" :scale="scale"  @markertap="markertap"   @callouttap='callouttap'>
						<cover-view class="cover-view" :style='{bottom:coverbottom}' @click="onControltap">
							<cover-image class="cover-image" @click="play" src="@/static/ditudingwei.png"></cover-image>
							<cover-view>
									定位
							</cover-view>
					</cover-view>	
			</map>
		</view>
</template>
<script>
	export default {
		data() {
			return {
						latitude:23.106574, //纬度
						longitude:113.324587,//经度
						scale:13,//缩放级别
						bottomData:false,
						marker: [
											{
											id:0,
											latitude: 23.13065,//纬度
											longitude: 113.3274,//经度
											iconPath: '',    //显示的图标        
											rotate:0,   // 旋转度数
											width:20,   //宽
											height:30,   //高
												//   title:'我在这里',//标注点名
											alpha:0.5,   //透明度
											callout:{//自定义标记点上方的气泡窗口 点击有效  
											content:'天宝大厦',//文本
											color:'#ffffff',//文字颜色
											fontSize:14,//文本大小
											borderRadius:15,//边框圆角
											borderWidth:'10',
											bgColor:'#e51860',//背景颜色
											display:'ALWAYS',//常显
											},
											},
											{
													id:1234597,
													latitude:  23.106574,//纬度
													longitude: 113.324587,//经度
													iconPath: '',    //显示的图标        
													rotate:0,   // 旋转度数
													width:20,   //宽
												height:30,   //高
											//  title:'我在这里',//标注点名
													alpha:0.5,   //透明度
												//      label:{//为标记点旁边增加标签   //因背景颜色H5不支持
												//   color:'red',//文本颜色
												//      },
													callout:{//自定义标记点上方的气泡窗口 点击有效  
												content:'广州塔',//文本
												color:'#ffffff',//文字颜色
												fontSize:14,//文本大小
												borderRadius:15,//边框圆角
												borderWidth:'10',
												bgColor:'#e51860',//背景颜色
												display:'ALWAYS',//常显
												},
											},
											{
													id:2,
													latitude:  23.1338,//纬度
													longitude: 113.33052,//经度
													iconPath: '',    //显示的图标        
													rotate:0,   // 旋转度数
						  						width:20,   //宽
													height:30,   //高
													alpha:0.5,   //透明度
											callout:{//自定义标记点上方的气泡窗口 点击有效  
												content:'德隆大厦',//文本
												color:'#ffffff',//文字颜色
												fontSize:14,//文本大小
												borderRadius:15,//边框圆角
												borderWidth:'10',
												bgColor:'#e51860',//背景颜色
												display:'ALWAYS',//常显
												},
											},
												{
													id:3,
													latitude:  23.136455,//纬度
													longitude: 113.329002,//经度
													iconPath: '',    //显示的图标        
													rotate:0,   // 旋转度数
														width:20,   //宽
														height:30,   //高
														alpha:0.5,   //透明度
													callout:{//自定义标记点上方的气泡窗口 点击有效  
													content:'羊城国际商贸中心',//文本
													color:'#ffffff',//文字颜色
													fontSize:14,//文本大小
													borderRadius:15,//边框圆角
													borderWidth:'10',
													bgColor:'#e51860',//背景颜色
													display:'ALWAYS',//常显
													},
												},
											{
													id:4,
													latitude:  23.224781,//纬度
													longitude: 113.293911,//经度
													iconPath: '',    //显示的图标        
													rotate:0,   // 旋转度数
						  						width:20,   //宽
													height:30,   //高
													alpha:0.5,   //透明度
												callout:{//自定义标记点上方的气泡窗口 点击有效  
													content:'天瑞广场A座',//文本
													color:'#ffffff',//文字颜色
													fontSize:16,//文本大小
													borderRadius:15,//边框圆角
													borderWidth:'12',
													bgColor:'#e51860',//背景颜色
													display:'ALWAYS',//常显
												},
												},
											{ 
														id:5,
														latitude:  23.072726,//纬度
														longitude: 113.277921,//经度
														iconPath: '',    //显示的图标        
														rotate:0,   // 旋转度数
												width:20,   //宽
													height:30,   //高
													alpha:0.5,   //透明度
											callout:{//自定义标记点上方的气泡窗口 点击有效  
													content:'大米和小米儿童康复(广州盈丰)中心',//文本
													color:'#ffffff',//文字颜色
													fontSize:14,//文本大小
													borderRadius:15,//边框圆角
													borderWidth:'8',
													bgColor:'#e51860',//背景颜色
													display:'ALWAYS',//常显
												},
												},
										],
			}
			},
		onLoad() {
 
		},
		computed:{
					mapheight(){
						let data =''
						if(this.bottomData){
							if(this.upTop){
								data ='50px'
							}else{
								data ='200px'
							}
						}else{
							data ='90vh'
						}
						return data
					},
					coverbottom(){
						let data =''
						if(this.bottomData){
							data ='20rpx'
						}else{
							data ='100rpx'
						}
						return data
					}
				},
 
		methods:{
				//地图点击事件
			markertap(e) {
				console.log("===你点击了标记点===",e)
				},
			//地图点击事件
			callouttap(e){
				console.log('地图点击事件',e)
		}
		}
	}
</script>
<style lang='less' scoped>
		.map-container {
		position: relative;
		overflow: hidden;
		.cover-view {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			width: 80rpx;
			height: 80rpx;
			color: #484848;
			background-color: #fff;
			background-size: 120rpx 120rpx;
			background-position: center center;
			position: absolute;
			bottom: 100rpx;
			right: 32rpx;
		}
		.cover-image{
			display: inline-block;
			width: 30rpx;
			height: 30rpx;
		}
		}
</style>

 获取自身经纬度

进入页面拿到用户自身的经纬度

在onShow中输入

onShow() {
				uni.getLocation({
								geocode:true,
								type: 'wgs84',
								success: (res) => {
									console.log(res,'获取当前位置')
									
								},
								address:(res) =>{
									console.log('address',res)
								}
				});

 需要打开manifest.json

  如果从来没配置过appld请先配置在进行操作

 

 然后重新编译就会出现

 允许之后就可以拿到经纬度信息

 然后可以将经纬度信息赋值给data中的latitude longitude

	onShow() {
				uni.getLocation({
								geocode:true,
								type: 'wgs84',
								success: (res) => {
									console.log(res,'获取当前位置')
									this.longitude =res.longitude
									this.latitude = res.latitude
									
								},
								address:(res) =>{
									console.log('address',res)
								}
				});
		},

通过经纬度 获取当前城市信息

首先需要进入腾讯位置服务 /控制台/应用管理/我的应用/添加key选择webServiceApi

 然后去小程序开发管理/开发设置/服务器域名/request合法域名后面新增

https://apis.map.qq.com;

 然后下载 

https://mapapi.qq.com/web/miniprogram/JSSDK/qqmap-wx-jssdk1.1.zip

 引入

在ohshow中使用

var qqmapsdk
			// 实例化API核心类
			qqmapsdk = new QQMapWX({
				key: '创建的key'
			});
			qqmapsdk.reverseGeocoder({
			location:{
				latitude:this.latitude,
				longitude:this.longitude
			},
			success:(res)=>{
				console.log('reverseGeocoder',res)
			},
			fail:(err)=>{
				console.log('reverseGeocoder',err)
			}
		})

这样就可以通过自身的经纬度获取到当前所在的详细信息

更多地图事件可以查询官网腾讯位置服务 - 立足生态,连接未来

关于地图气泡弹窗在真机不显示或者显示颜色不明显的情况,你可以使用在callout中使用padding

这样就可以显示颜色了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uniapp 地图组件(map)的使用总结 的相关文章

  • 常用终止goroutine的方法

    var wg sync WaitGroup func foo defer wg Done for fmt Println 我是foo函数内的Print time Sleep time Millisecond 500 func main wg
  • 十问了解人工智能

    一 什么是人工智能 人工智能 Artificial Intelligence 简称AI 是指通过计算机技术实现的智能行为 这种行为可以表现为感知 推理 学习 理解 交互等能力 它是一种技术和科学 旨在让计算机能够像人类一样思考 决策和行动
  • Kali linux安装中文输入法

    kali安装中文输入法 pinyin 以下所有步骤在root和update更新后执行 首先安装ibus到系统里 所有指令复制即可使用 apt get install ibus ibus pinyin 安装时会选择是否继续 输入y或者yes即
  • Flask学习

    flask 1 py from flask import Flask app Flask name app route def index return h1 hello world h1 app run flask 2 py from f
  • 基于Pygame的兔獾大战游戏的设计与实现_kaic

    当今社会是一个信息社会且时代发展迅速 时代发展迅速伴随而来的是越来越大的压力 所以通过游戏解压的需求越来越大 游戏也逐渐成为人们日常的娱乐方式 兔獾大战游戏设计了简单的游戏界面和容易让用户理解的游戏操作方式 使得用户可以更好的进行游戏体验
  • C++中的函数模板

    觉得大神写的很好 就摘抄下来了 有需要可以查看原版链接 如下 以下内容是摘抄博客 C 中的函数模板 年少轻狂 幸福时光 CSDN博客 函数模板 之前我们知道的交换两个变量的方法有宏定义 函数 这两种方式都能实现两个变量的交换 但是各有各的优
  • Ubuntu镜像下载地址

    镜像地址https launchpad net ubuntu cdmirrors
  • Tomcat集群配置

    1 Tomcat集群 多个 Tomcat 服务器构成了一个集群 Cluster 系统 共同为客户提供服务 集群系统具有以下优点 高可靠性 高性能计算 负载平衡 图1 1显示了由 JK插件和两个 Tomcat服务器构成的集群系统 集群系统的正
  • Jeesite 过滤指定字典的值(显示字典的一部分值)

    一 HTML div class form group div
  • uni/vue transition不生效的解决办法

    uni中目前还是使用vue2 自上而下的过渡效果 从底部飞入 fly in from bottom 进入过渡生效 离开过渡生效 enter active leave active transition transform 3s enter

随机推荐

  • 13-并查集

    数据结构并查集常用于将两个集合并起来以及查询两个元素是否隶属于同一个集合 相对于传统我们的求法 并查集算法极大减少了查询的工作量 提高了效率 合并集合 假设我们有两个集合 常规情况下合并两个集合就是将它们混合起来 但是在计算机中 如果我们想
  • idea 配置详解 (二) 之editor 详解

    3 File Settings Editor 3 1 File Settings Editor General 3 1 1 File Settings Editor General Auto Import 3 1 2 File Settin
  • error: ‘connect‘ was not declared in this scope connect(timer, SIGNAL(timeout()), this, SLOT(up

    错误 error connect was not declared in this scope connect timer SIGNAL timeout this SLOT updateslot 解决方法 类要继承 QObject类
  • 015.PyQt5_QWidget_坐标系统&大小位置

    控件的坐标系统 左上角为坐标原点 向右为x轴正方向 向下为y轴正方向 子控件位置是参照父控件 顶层控件则参照桌面 大小位置 先了解一下控件的结构 没有父控件的控件 称之为窗口 一般会被包装成一个框架 相关API 获取大小和位置的API AP
  • linux怎么查看端口被哪个进程占用

    两种查看方法 例如80端口 1 使用fuser命令 可以直接在Linux上查看指定端口被哪个进程占用了 语法为 fuser v 80 tcp 运行结果里会包含进程的名字和id 2 使用lsof命令 能根据指定端口找到对应的进程信息 语法为
  • STEAM课程的五大教学策略

    格物斯坦小坦克就stem课程的五大教学策略来讲一讲 激发求知欲 培养思维技巧是STEAM课程活动的重点之一 先玩后做 即先呈现成果的乐趣再探索制作 让学生在实践活动中体验和理解相关的概念 力求最match大程度地激发学生的学习需求和求知欲
  • 虚拟机安装与双系统(win10+ubuntu)安装及其他

    近来由于想要尝试下双系统 所以整了个虚拟机玩玩 在真实机器上装双系统方法类似 不过在虚拟机上装要安全些 在此记录下过程 以资日后参考 博客原创性是没有啥原创性的 各处借花献佛 算是一个总结性博客吧 文章目录 1 虚拟机安装 2 一个跨浏览器
  • buck电路_通过DAC调节BUCK电路输出电压

    产品开发中 经常有需要调节DC转换器输出电压的需求 例如一些DC可调电源 或者直流有刷电机的调速等场合 上图中我们采用LM2596S ADJ作为电源模块 用带DAC功能的单片机或专用DAC芯片调节BUCK转换器的电压输出 我们都知道常见的D
  • 网络安全知识试题

    网络安全知识竞赛题库 1 维基解密 网站的总部位于 没有公开办公地址 没有公布办公邮箱 6 苹果的icloud存在安全策略漏洞 苹果公司采用限定账户每天登录次数方法进行弥补 8 在享受云服务带来的便捷时 数据安全的主动权掌握在手里 云服务商
  • JS中模板字符串,怎么设置自动补全html标签

    我们在写代码的时候经常会用到模板字符串 但是没有代码提示 写的还是挺难受的 有一种方法可以解决这个问题 我们在VScode中打开设置 找到任一一个settings json文件打开 将这下面这些代码粘贴在后面 emmet triggerEx
  • 差分数组是个啥?能干啥?怎么用?(差分详解+例题)

    差分数组是个啥 差分数组很明显就是个数组呗 本菜鸡学的比较浅 先说一下我自己认识的差分数组吧 先解释一下什么是 差分 差分其实就是数据之间的差 什么数据的差呢 就是上面所给的原始数组的相邻元素之间的差值 我们令 d i a i 1 a i
  • 【Linux】Linux Systemd 启动守护进程

    1 概述 转载 http www ruanyifeng com blog 2016 03 systemd tutorial commands html 去看原文吧 排版比较好 这里转载防丢失 Systemd 是 Linux 系统工具 用来启
  • 常用的大数据技术有哪些?

    大数据技术为决策提供依据 在政府 企业 科研项目等决策中扮演着重要的角色 在社会治理和企业管理中起到了不容忽视的作用 很多国家 如中国 美国以及欧盟等都已将大数据列入国家发展战略 微软 谷歌 百度以及亚马逊等大型企业也将大数据技术列为未来发
  • Kafka Producer 发送数据

    Kafka Producer 发送数据 1 生产者概览 1 不同的应用场景对消息有不同的需求 即是否允许消息丢失 重复 延迟以及吞吐量的要求 不同场景对Kafka生产者的API使用和配置会有直接的影响 2 Kafka发送消息的主要步骤 消息
  • 配置 RT-Thread 的工程目录

    1 前言 RT Thread 基于 Scons 的包管理非常方便让我们使用 RT Thread 进行开发 但在实际工程中将应用代码写到 RT Thread 官方提供的 bsp 目录下面会非常不便于使用 无法使用自己 git 工具进行代码管理
  • 使用IntelliJ IDEA通过Maven创建Spring的HelloWord(超详细图文教程)

    在JavaWeb中 随着Intellij IDEA的广泛使用 所用的Maven插件在以后的JavaEE中开发也将是个趋势 通过Maven仓库 我们可以不用下载所关联的Jar包就可以进行引用 还是很方便整个工程管理的 因为自己也是第一次接触S
  • 运算符相关知识点

    字符串转数值类型新增 隐式转换 隐式转换 正号 var a 10 console log typeof a console log typeof a 0 隐式转换 console log typeof a 1 隐式转换 console lo
  • iosArchive上传到AppStoreConnect

    首先 我们需要一个IOS开发平台上有一个开发者账号 https developer apple com programs enroll 这个平台可以注册个人账号或者公司账号 公司账号需要的资料更麻烦一点 但是功能也更多 在做好的开发者账号的
  • Win10家庭版远程桌面工具RDP Wrapper

    Win10家庭版远程桌面工具RDP Wrapper 由于win10家庭版官方不支持使用远程控制mstsc工具 但是使用RDP Wrapper可以解决该问题 解决办法 链接
  • uniapp 地图组件(map)的使用总结

    总结一下本次在uniapp中使用map遇到的一些问题 文章分别是基础 定位图标 获取自身经纬度 通过经纬度获取当时城市信息 首先先看成品 首先引入map组件