uniapp移动端地图,点击气泡弹窗并实现精准定位

news2024/11/24 5:41:21

记录移动端地图map组件的使用

需求记录:

移动端地图部分需要展示两个定位点,上报点及人员定位点。通过右上角的两个按钮实现地图定位。点击对应定位气泡,弹出定位点的信息。

效果图如下:

map在nvue中的使用。直接用nvue可以直接调整层级,可以覆盖住map组件。在map组件上添加按钮控制,实现交互。map组件内添加按钮使用cover-image如下:

<view>
    <map id="map" class="map" :scale="15" ref="map" style="width:320px;height:500px;margin-left: 30px;"
			:latitude="latitude" :longitude="longitude" :markers="cover">
	    <view class="btnStyle">
		    <cover-image src="../../static/images/people.png" 
			class="removeToReal" @tap="removeToReal"></cover-image>
		    <cover-image src="../../static/images/gaodeMap.png" style="margin-top: 18px;" class="removeToMap" @tap="removeToMap"></cover-image>
	    </view>
	</map>
</view>

js部分:

<script>
    export default {
        data() {
            return {
                // 地图
                mapContext: null,
				latitude: null,
				longitude: null,
                latitudeReal: null,
				longitudeReal: null,
                cover: [],
            }
        },
        methods: {
            //  移动到对应点坐标
            removeToReal() {
				this.mapContext.moveToLocation({
					latitude: this.latitudeReal,
					longitude: this.longitudeReal
				});
			},
            //  移动到对应点坐标
			removeToMap() {
				this.mapContext.moveToLocation({
					latitude: this.latitude,
					longitude: this.longitude
				});
			},
            // 关键代码:
            // 加载坐标点及气泡。(data参数中包含了所需的所有数据,以下仅为气泡弹窗的代码示例参考)
			async setMarkers(data) {
				let latlng = JSON.parse(data.inspectorLocation)
				let reallatlngTurn = this.wgs84_gcj02(latlng[0],latlng[1])
				let realatlng = JSON.parse(data.inspectorRealsite)
				let realTurn = this.wgs84_gcj02(realatlng[0],realatlng[1])
				this.longitude = reallatlngTurn[0]
				this.latitude = reallatlngTurn[1]
				this.longitudeReal = realTurn[0]
				this.latitudeReal = realTurn[1]
				let markers = []
				let markerInspector = {
					id: 'id_' + 'inspectorLocation',
					latitude: reallatlngTurn[1],
					longitude: reallatlngTurn[0],
					width: 30,
					height: 35,
					iconPath: '../../static/images/position2.png',
					callout:{//自定义标记点上方的气泡窗口 点击有效  
					    content: `                     上报点
			任务单号:${data.taskSn}
			任务类型:外部任务
			派发时间:${data.dispatchTime.slice(0,10)}
			上报人:    ${data.inspectorName}
			经度:       ${latlng[0].toFixed(6)}
			纬度:       ${latlng[1].toFixed(6)}`,//文本
					    color: '#ffffff',//文字颜色
					    fontSize: 14,//文本大小
					    borderRadius: 15,//边框圆角
					    borderWidth: '10',
						padding: '10',
						textAlign: 'left',
					    bgColor: '#e51860',//背景颜色
					    display: 'BYCLICK',//常显
					}
				}
				markers.push(markerInspector)
				
				let markerReal = {
					id: 'id_' + 'realLocation',
					latitude: realTurn[1],
					longitude: realTurn[0],
					callout:{//自定义标记点上方的气泡窗口 点击有效
					    content: `                     定位点
			任务单号:${data.taskSn}
			任务类型:外部任务
			上报人:    ${data.inspectorName}
			角色:       ${people}
			派发时间:${data.dispatchTime.slice(0,10)}
			经度:       ${realatlng[0]}
			纬度:       ${realatlng[1]}`,//文本
					    color: '#ffffff',//文字颜色
					    fontSize: 14,//文本大小
					    borderRadius: 15,//边框圆角
					    borderWidth: '10',
						padding: '10',
						textAlign: 'left',
					    bgColor: '#e51860',//背景颜色
					    display: 'BYCLICK',//常显
					}
                }
				markers.push(markerReal)
				this.cover=markers

        },
        onLoad(options) {
			this.mapContext = uni.createMapContext("map", this);
        }
</scritpt>

 

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

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

相关文章

Python的io模块

io 模块提供了 Python 用于处理各种 I/O 类型的主要工具。三种主要的 I/O类型分别为: 文本 I/O, 二进制 I/O 和 原始 I/O。 io.open() 是内置的 open() 函数的别名. 语法&#xff1a; open(file,moder,buffering-1,encodingNone,errorsNone,newlineNone,closefdTrue,openerN…

Python基础教程:进程的调度

前言 嗨喽~大家好呀&#xff0c;这里是小曼呐 ❤ ~! 要想多个进程交替运行&#xff0c;操作系统必须对这些进程进行调度&#xff0c; 这个调度也不是随即进行的&#xff0c;而是需要遵循一定的法则&#xff0c;由此就有了进程的调度算法。 一、先来先服务调度算法 先来先服…

【IT资讯速递】清华大学推出 D-Bot,用 AI 大模型协助管理数据库;ChatGPT 与 Stack Overflow 的对决;免费在线AI工具LeiaPix:一键将图片转3D动画

2023年8月17日 星期四 癸卯年七月初二 第000004号 本文收录于IT资讯速递专栏,本专栏主要用于发布各种IT资讯&#xff0c;为大家可以省时省力的就能阅读和了解到行业的一些新资讯 IT资讯速递 一、清华大学推出 D-Bot&#xff0c;用 AI 大模型协助管理数据库二、OpenAI宣布使用G…

C语言文件读写常用函数

文章目录 1. fopen函数2. fclose函数3. fgetc函数4. fgets函数5. fputc函数6. fputs函数7. fprintf函数8. fscanf函数9. fseek函数10. ftell函数 1. fopen函数 返回值&#xff1a;文件指针&#xff08;FILE*&#xff09;参数&#xff1a;文件名&#xff08;包括文件路径&#…

用半天时间从零开始复习前端之html

目录 前言 科班生的标配&#xff1a;半天听完一门标记型语言 准备工作 webstorm2022 webstrom 第一个html页面 body h系列标签 行标签和块标签 列表标签 表格标签&#xff08;另起一篇&#xff09; 万能的input 1.快速生成多个标签 2.同时选中多个 前言 科班生的标…

算法通关村十四关:青铜-堆结构

青铜挑战-堆结构 堆结构&#xff1a;重要的基础数据结构 明确什么类型的题目可以用堆&#xff0c;以及如何用堆来解决 堆的构造和维护过程都非常复杂 1.堆的概念与特征 1.1基本概念 堆&#xff1a;是将一组数据按照 完全二叉树 的存储顺序&#xff0c;将数据存储在一个一…

RHCA之路---EX280(9)

RHCA之路—EX280(9) 1. 题目 Scale the application greeter in the project samples to a total of 5 replicas 2. 解题 2.1 切换项目 [rootmaster ex280]# oc project samples Now using project "samples" on server "https://master.lab.example.com&qu…

The WebSocket session [x] has been closed and no method (apart from close())

在向客户端发送消息时&#xff0c;session关闭了。 不管是单客户端发送消息还是多客户端发送消息&#xff0c;在发送消息之前判断session 是否关闭 使用 isOpen() 方法

简单的爬虫代码 爬(豆瓣电影)

路漫漫其修远兮&#xff0c;吾将上下而求索 这次写一个最简单的python爬虫代码&#xff0c;也是大多教程第一次爬取的&#xff0c;代码里面有个别的简单介绍&#xff0c;希望能加深您对python爬虫的理解。 本次爬取两个网页数据 一 爬取的网站 豆瓣电影 爬取网页中的&#…

【无标题】can中继器 can隔离器 本安型CAN中继器在无轨胶轮车电控箱和防爆变频器中的应用

随着科学技术的不断发展和社会的不断进步,煤炭资源之于人类显得更加的重要,近年来,煤矿企业进一步发展,为我国的经济带来巨大的好处。在煤矿的运输过程中,无轨式脚轮车的应用是非常广泛的,它具有灵活、快速、激动、安全等特点,极大的提高了煤炭的运输效率。目前,在无轨胶轮车的…

问道管理:存款利率多次调降后,为何银行存款成本率不降反升?

存款本钱是银行最首要的资金本钱&#xff0c;2022年以来&#xff0c;人民币存款利率阅历了5次会集下调&#xff0c;但上市银行发布的2023年半年报显现&#xff0c;存款均匀本钱率不降反升。 2023年上半年&#xff0c;42家A股上市银行存款均匀本钱率均值为2.18%&#xff0c;较2…

服务端请求伪造(SSRF)及漏洞复现

文章目录 渗透测试漏洞原理服务端请求伪造1. SSRF 概述1.1 SSRF 场景1.1.1 PHP 实现 1.2 SSRF 原理1.3 SSRF 危害 2. SSRF 攻防2.1 SSRF 利用2.1.1 文件访问2.1.2 端口扫描2.1.3 读取本地文件2.1.4 内网应用指纹识别2.1.5 攻击内网Web应用 2.2 SSRF 经典案例2.2.1 访问页面2.2.…

QLoRA:量化LLM的高效微调策略与实践

如果你对这篇文章感兴趣&#xff0c;而且你想要了解更多关于AI领域的实战技巧&#xff0c;可以关注「技术狂潮AI」公众号。在这里&#xff0c;你可以看到最新最热的AIGC领域的干货文章和案例实战教程。 一、前言 在大型语言模型&#xff08;LLM&#xff09;领域&#xff0c;微…

Android大厂需要刷的(999道)面试题

想必大家都在为今年的金九银十做准备&#xff0c;今年也是最为艰难的一年。作为程序员从未感觉到如此艰难&#xff0c;身边不是被辞退就是找不到工作。先不说2023年应届生毕业即失业&#xff0c;作为开发15年的老Android程序员&#xff0c;现在也在和300个人挣一个岗位。 肉少…

MySQL大数据量高速迁移,500GB只需1个小时

在上篇「快、准、稳的实现亿级别MySQL大表迁移」的文章中&#xff0c;介绍了NineData在单张大表场景下的迁移性能和优势。但在大部分场景中&#xff0c;可能遇到的是多张表构成的大数据量场景下的数据搬迁问题。因为搬迁数据量较大&#xff0c;迁移的时长、稳定性及准确性都受到…

Maven编译java及解决程序包org.apache.logging.log4j不存在问题

1、首先新建一个文件夹&#xff0c;比如hello Hello里新建pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi…

Qt 5.15编译(MinGW)及集成Crypto++ 8.7.0笔记

一、背景 为使用AES加密库&#xff08;AES/CBC加解密&#xff09;&#xff0c;选用Crypto 库&#xff08;官网&#xff09;。   最新Crypto C库依次为&#xff1a;8.8.0版本&#xff08;2023-6-25&#xff09;、8.7.0&#xff08;2022-8-7&#xff09;和8.6.0&#xff08;202…

电表数据采集红外抄表加密认证

红外操作前需要进行红外认证&#xff0c;打开操作权限。认证不通过&#xff0c;只能读出表号、通信地址、备案号、当前日期、当前时间、当前电能、当前剩余金额、红外认证查询命令&#xff0c; 其它信息不允许读出&#xff0c;所有信息均不允许设置。停电唤醒情况下&#xff0…

小白学go基础04-命名惯例对标识符进行命名

计算机科学中只有两件难事&#xff1a;缓存失效和命名。 命名是编程语言的要求&#xff0c;但是好的命名却是为了提高程序的可读性和可维护性。好的命名是什么样子的呢&#xff1f;Go语言的贡献者和布道师Dave Cheney给出了一个说法&#xff1a;“一个好笑话&#xff0c;如果你…

elasticsearch的数据聚合

聚合可以让我们极其方便的实现对数据的统计、分析、运算。例如&#xff1a; 什么品牌的手机最受欢迎&#xff1f; 这些手机的平均价格、最高价格、最低价格&#xff1f; 这些手机每月的销售情况如何&#xff1f; 实现这些统计功能的比数据库的sql要方便的多&#xff0c;而且…