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

news2025/1/22 9:08:39

总结一下本次在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

这样就可以显示颜色了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/527217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过云函数搭建内地可用的OpenAI代理(腾讯云centos系统)

需求&#xff1a; 大陆内地云服务器无须搭梯子&#xff0c;无须NGINX反向代理访问openAI。 背景&#xff1a; 平时工作环境是局域网&#xff0c;不方便分享给朋友用&#xff0c;即使不是局域网也不可能一直开着自己的电脑啦&#xff0c;于是想着给弄到云服务器上。 一般来说&…

diff命令和vimdiff命令

文章目录 diff命令基本用法选项示例 vimdiff命令命令格式选项说明常用操作 diff命令 diff命令是一个文本比较工具&#xff0c;用于比较两个文件的内容&#xff0c;它会逐行比较两个文件的内容并输出它们之间的差异。下面是diff命令的常用选项和用法&#xff1a; 基本用法 比…

数据信息汇总的7种基本技术总结

数据汇总是一个将原始数据简化为其主要成分或特征的过程&#xff0c;使其更容易理解、可视化和分析。本文介绍总结数据的七种重要方法&#xff0c;有助于理解数据实质的内容。 1、集中趋势:平均值&#xff0c;中位数&#xff0c;众数 集中趋势是一种统计测量&#xff0c;目的…

RFID系统简介:优点、应用与发展前景

一、介绍RFID系统 RFID系统全称是Radio Frequency Identification&#xff0c;是一种通过电磁场自动识别标记&#xff08;Tag或RFID标签&#xff09;并读取相关数据的技术。与条形码技术相比&#xff0c;RFID系统最大的特点就是可以自动识别、无须接触扫描&#xff0c;并且可以…

MySQL报错:Got an error reading communication packets

error reading 关闭连接 通常一旦连接建立&#xff0c;MySQLD端的线程会堵塞在poll上&#xff0c;而poll的就是连接socket的fd&#xff0c;等待读取命令&#xff0c;也就是读取MySQL net packet的header。同时如果是poll timeout超时则设置为SOCKET_ETIMEDOUT 这就是我们平时说…

ResNet 原论文及原作者讲解

ResNet 论文摘要1. 引入2. 相关工作残差表示快捷连接 3. 深度残差学习3.1. 残差学习3.2. 快捷恒等映射3.3. 网络体系结构普通网络 plain network残差网络 residual network 3.4. 实施 4. 实验4.1. ImageNet分类普通的网络 plain network残差网络 residual network恒等vs.快捷连…

ribbon的使用

什么是ribbon Ribbon是Netflix公司提供的一个基于HTTP和TCP的客户端负载均衡工具。 Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具&#xff0c;Ribbon客户端组件提供一系列的完善的配置&#xff0c;如超时&#xff0c;重试等。通过Load Balancer获取…

随笔:mysql的主主同步

背景&#xff1a; nginx负载均衡和双击热备下&#xff0c;要求支持mysql的test库的主主同步&#xff0c;同时需要豁免特定的三张配置表。 实现步骤&#xff1a; 1. 查看防火墙是否是关闭状态。systemctl status firewalld 2. 修改配置&#xff0c;增加以下内容。vi /etc/my.cnf…

利用Github Action备份Docker容器中的数据库

利用Github Action备份Docker容器中的数据库 本文方案仅供技术参考与娱乐&#xff01; 前言 数据很重要&#xff0c;所以我们要经常备份。 那么怎么备份呢&#xff1f;假如我们使用云厂商的数据库&#xff0c;里面已经自带了快照和备份功能了&#xff0c;只要你愿意花钱&…

golang 使用 OpenTelemetry 实现跨服务 全链路追踪

使用 OpenTelemetry 链路追踪说明 工作中常常会遇到需要查看服务调用关系,比如用户请求了一个接口接口会调用其他grpc,http接口,或者内部的方法这样的调用链路,如果出现了问题,我们需要快速的定位问题,这时候就需要一个工具来帮助我们查看调用链路OpenTelemetry就是这样一个工…

力扣总结,深度优先题

LCP 67. 装饰树 –链接– 中等 10 相关企业 力扣嘉年华上的 DIY 手工展位准备了一棵缩小版的 二叉 装饰树 root 和灯饰&#xff0c;你需要将灯饰逐一插入装饰树中&#xff0c;要求如下&#xff1a; 完成装饰的二叉树根结点与 root 的根结点值相同 若一个节点拥有父节点&#x…

用Java开发的建站神器JPress

什么是 JPress &#xff1f; JPress 是一个使用 Java 开发的、类似 WordPress 的产品&#xff0c;支持多站点、多语种自动切换等。&#xff08;JPress 始于2015 年&#xff09; 目前已经有 10w 网站使用 JPress 进行驱动&#xff0c;其中包括多个政府机构&#xff0c;200 上市公…

HashMap 扰动函数、负载因子、扩容链表拆分

文章目录 1.扰动函数2.初始容量3.负载因子4.扩容链表拆分 1.扰动函数 在jdk8中&#xff0c;hashmap有这样一段代码&#xff0c;他叫扰动函数&#xff0c;目的是优化散列效果 static final int hash(Object key) {int h;return (key null) ? 0 : (h key.hashCode()) ^ (h &…

初识Java多线程编程

文章目录 一、线程的状态二、线程的常见属性三、多线程编程Thread类常用构造方法1.继承Thread类2.实现Runnable接口3.匿名内部类实现4.lambda 表达式创建 Runnable 子类对象 四、线程的常见方法 一、线程的状态 //线程的状态是一个枚举类型 Thread.State public class ThreadS…

【C语言】结构体——基础篇

结构体 为什么需要结构体&#xff1f;结构体类型的定义结构体变量结构体变量的定义结构体变量的引用结构体变量的初始化 结构体嵌套 为什么需要结构体&#xff1f; &#x1f4ab;首先&#xff0c;来举一个例子看一下为什么需要结构体。   在学籍管理系统中&#xff0c;要存储…

驱动开发:内核远程堆分配与销毁

在开始学习内核内存读写篇之前&#xff0c;我们先来实现一个简单的内存分配销毁堆的功能&#xff0c;在内核空间内用户依然可以动态的申请与销毁一段可控的堆空间&#xff0c;一般而言内核中提供了ZwAllocateVirtualMemory这个函数用于专门分配虚拟空间&#xff0c;而与之相对应…

MATLAB绘制动画(二)擦除动画

如果我们在绘制图形之后将原有的图形擦除&#xff0c;并重新绘制&#xff0c;看上去就像动画了 示例: t 0; m [sin(t);cos(t)]; p plot(t,m,EraseMode,background,MarkerSize,5); x -1.5*pi; axis([x x2*pi -1.5 1.5]); grid onfor i 1:100t [t 0.1*i];m [m [sin(0.1*i…

【LeetCode: 97. 交错字符串 | 暴力递归=>记忆化搜索=>动态规划 | 位置对应】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

校园安全,一键报警主机助力保障

校园安全&#xff0c;一键报警主机助力保障 随着社会发展和科技进步&#xff0c;校园安全问题日益受到重视。如何保障师生们的安全成为了学校一项重要任务。而校园可视一键报警主机就是一种非常有效的安保设备。 这种报警主机集合了视频监控、安全防范、数据处理等多个功能&a…

asm 加盘 udev 重启 导致网络异常

Network interface going down when dynamically adding disks to storage using udev in RHEL 6 (Doc ID 1569028.1)正在上传…重新上传取消To Bottom In this Document APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.3 and later Oracle Net Servi…