uniapp开发h5项目使用baidu-map组件实现地图引入,定位渲染,弹窗功能实现,根据定位路线图的实现

1.效果图

2.准备工作

cnpm install vue-baidu-map --save

在main.js中全局引入

import BaiduMap from 'vue-baidu-map'
Vue.use(BaiduMap, {
	// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
	ak: 'sRDDfAKpCSG5iF1rvwph4Q95M6tDCApL'
})

3.html

<baidu-map class="bm-view" :center="center" :zoom="zoom" @ready="handler">
				<div v-for="(marker,index) of markers" :key="index">
					<bm-marker class="bmMarker" :dragging="true" @click="infoWindowOpen(marker)"
						:position="{lng: marker.lng, lat: marker.lat}"
						:icon="{url:index == 0 ? mapIcon1 : mapIcon, size: {width: 25, height: 25}}">
                        <!-- 弹窗 -->
						<bm-info-window v-if="index !== 0" title="网点信息" :position="{lng: marker.lng, lat: marker.lat}"
							:show="marker.showFlag" @close="infoWindowClose(marker)" @open="infoWindowOpen(marker)">

							<div>{{marker.siteName}}</div>
							<div class="btn" @click="navigation(marker)">导航</div>
						</bm-info-window>
					</bm-marker>
				</div>
				<!-- 点击导航 实现路线图 -->
				<bm-driving v-if="navFlag" :start="nav.start" :end="nav.end" @searchcomplete="handleSearchComplete"
					:panel="false" :autoViewport="true"></bm-driving>
			</baidu-map>

4.js

// 渲染地图和点位
			handler({
				BMap,
				map
			}) {
				let that = this
				uni.getLocation({
					type: 'gcj02',
					geocode: true,
					geocodeAccuracy: 'highAccuracy', // 设置高精度模式
					isHighAccuracy: true,
					success: function(res) {
						if (res) {
							that.center.lng = res.longitude
							that.center.lat = res.latitude
							that.markerPoint.lng = res.longitude
							that.markerPoint.lat = res.latitude

							console.log('当前位置的经度:' + that.center.lng);
							console.log('当前位置的纬度:' + that.center.lat);
							// that.zoom = 13
							that.zoom = 13
						}
					}
				});
			},    
//信息弹层 这两个方法一定要加
			infoWindowClose(marker) {
				this.$set(marker, 'showFlag', false);
				// marker.showFlag = false
				console.log(marker.showFlag, '11111111111111')
				// this.navFlag = false
			},
			infoWindowOpen(marker) {
				let that = this
				// 点击定位图标没有反应可能是因为在 Vue 中对象属性的动态添加和响应性问题导致的,在vue中动态添加一个对象属性,如果该属性不是响应式的,无法追踪到属性的变化,无法触发视图的更新,可以使用 Vue 提供的 $set 方法或者 Vue.set 方法来添加响应式属性,以便 Vue 监听到该属性的变化
				this.$set(marker, 'showFlag', true);
				// this.navFlag = true
				// this.nav.end = marker.siteAddress
				// console.log(marker.lng,marker.lat,'markermarkermarker')
				// var point = new BMap.Point(marker.lng,marker.lat);
				// var gc = new BMap.Geocoder();
				// gc.getLocation(point, function(rs) {
				// 	// console.log(rs,'222222222222222222222222')
				// 	rs = JSON.parse(JSON.stringify(rs))
				// 	that.nav.end = rs.address
				// 	// console.log(that.nav.end,'11111111222333')
				// });
				
			},
// 导航
			navigation(marker) {
				let that = this
				that.nav.end = marker.siteAddress
				 // 在显示新路径之前,先隐藏上一个路径
				that.navFlag = false;
				console.log(marker.lng,marker.lat,'markermarkermarker')
				var point = new BMap.Point(marker.lng,marker.lat);
				var gc = new BMap.Geocoder();
				gc.getLocation(point, function(rs) {
					// console.log(rs,'222222222222222222222222')
					rs = JSON.parse(JSON.stringify(rs))
					that.nav.end = rs.address
					that.navFlag = true
					console.log(that.nav.end,'11111111222333')
				});
				console.log(marker,'marker')
			},
			// 路线图
			handleSearchComplete(res) {
				console.log(res,'res')
				// if(res){
					this.path = res.getPlan(0).getRoute(0).getPath()
				// }
				
			},

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DNA存储技术原理是什么?

随着大数据和人工智能的发展&#xff0c;全球每天产生的数据量剧增&#xff0c;对存储设备的需求也随之增长&#xff0c;数据存储问题日益凸显。传统的硬盘驱动器&#xff08;HDD&#xff09;、磁带等冷存和深度归档存储占据数据中心存储的60-70%&#xff0c;由于它们的访问频率…

服务器数据恢复—异常断电导致服务器磁盘阵列崩溃的数据恢复案例

服务器数据恢复环境&故障&#xff1a; 由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档&#xff0c;上层安装的是Windows server操作系统&#xff0c;没有配置ups。 因为服务器异常断电重启后&#xff0c;raid阵列可以正常使用&#xff0c;所以未…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(一)

概览 Swift 语言给我们的印象是&#xff1a;简洁、现代化和可以“心安神泰”的完全信赖。不过&#xff0c;在一些特殊情况下我们唯有进入 Swift 底层的动态世界方能真正地“随遇而安”。 保安局“刘局长”曾语重心长的教导过我们&#xff1a;“非常时期&#xff0c;用非常方法…

leetcode代码记录(删除字符串中的所有相邻重复项

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成…

Uibot6.0 (RPA财务机器人师资培训第1天 )RPA+AI、RPA基础语法

训练网站&#xff1a;泓江科技 (lessonplan.cn)https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981(本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff09; 紧接着小北之前的几篇博客&#xff0c;友友们我们即将开展新课的学习~…

Socket类

2.2 Socket类 Socket 类&#xff1a;该类实现客户端套接字&#xff0c;套接字指的是两台设备之间通讯的端点。 构造方法 public Socket(String host, int port) :创建套接字对象并将其连接到指定主机上的指定端口号。如果指定的host是null &#xff0c;则相当于指定地址为回送…

论文阅读之AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

文章目录 原文链接主要内容模型图技术细节实验结果 原文链接 AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE 主要内容 这篇文章的主要内容是介绍了一种新的计算机视觉模型——Vision Transformer&#xff08;ViT&#xff09;&#xff0c;这是…

爬虫基础:HTTP基本原理

爬虫基础&#xff1a;HTTP基本原理 前言HTTP基本原理URI 和 URLHTTP 和 HTTPSHTTP 请求过程请求与响应HTTP请求HTTP响应请求与响应的交互过程 HTTP 2.0二进制传输多路复用Header压缩服务器端提前响应内容安全 前言 了解 HTTP的基本原理&#xff0c;了解从往测览器中输人 URL到获…

软件安全测评要点有哪些?第三方软件安全测试是必需品吗?

在当今数字化时代&#xff0c;软件安全测试是每个软件开发团队都不能忽视的重要环节。安全测试是指对软件产品进行系统、全面的安全性评测与检测的过程。它旨在发现并修复软件中存在的漏洞和安全隐患&#xff0c;以确保软件能够在使用过程中保护用户的数据和隐私不被非法访问和…

Pytest自动化测试框架快速上手(超详细)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 pytest是一个非常成熟的全功能的Python测试框架&#…

《操作系统实践-基于Linux应用与内核编程》第10章--实验 Qt聊天程序

前言: 内容参考《操作系统实践-基于Linux应用与内核编程》一书的示例代码和教材内容&#xff0c;所做的读书笔记。本文记录再这里按照书中示例做一遍代码编程实践加深对操作系统的理解。 引用: 《操作系统实践-基于Linux应用与内核编程》 作者&#xff1a;房胜、李旭健、黄…

边缘检测-Tiny and Efficient Model for the Edge Detection Generalization

源代码: https://github.com/xavysp/TEED 论文地址&#xff1a;https://arxiv.org/pdf/2308.06468.pdf 大多数高级计算机视觉任务依赖于低级图像操作作为其初始过程。边缘检测、图像增强和超分辨率等操作为更高级的图像分析提供了基础。在这项工作中&#xff0c;我们考虑三个…

YUNBEE云贝-OBCP大军又一满分学员登榜!

课程介绍 培训概述 OceanBase 认证是 OceanBase 官方推出的唯一人才能力认证体系&#xff0c;代表了阿里巴巴及蚂蚁集团官方对考生关于 OceanBase 技术能力的认可&#xff0c;旨在帮助考生更好地学习 OceanBase 数据库产品&#xff0c;早日融入 OceanBase 技术生态体系&#x…

浏览量这么低,还要不要继续坚持?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 曾经在一个群里聊天&#xff0c;有群友看到我两位数的浏览量&#xff0c;说到&#xff1a;浏览量这么低还坚持什么&#xff1f; 浏览量低是事实&#xff0c;大多数是十几二十的&#xff0c;上百的都是少数&#xff0c…

ubuntu10.04 apache2.2开启tls1.2的支持,使现代的edge和firefox浏览器能正常访问https

最近发现自己ubuntu10.04服务器上的apache https无法通过win11上的edge和firefox浏览器访问&#xff0c;但xp下的ie6和ie8没有问题。 firefox的错误提示为“此网站可能不支持TLS 1.2协议,而这是Firefox支持的最低版本”。 经过检查发现&#xff1a; IE6访问https所需的版本是SS…

Vulnhub靶机:Stapler1

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.4&#xff09; 靶机&#xff1a;Stapler: 1&#xff08;10.0.2.13&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/sta…

安卓转鸿蒙能有多适配?简直了……

到现在为止&#xff0c;想必很多开发者都或多或少 了解过鸿蒙。许多企业也都已经加入了鸿蒙业务&#xff0c;半推半就的开始学习鸿蒙开发。那么鸿蒙到底好不好搞呢&#xff1f; 首先可以肯定的一点&#xff0c;对于做安卓的来说鸿蒙非常搞&#xff0c;究竟有多好搞呢&#xff…

蓝桥杯-体育健将-CPP-贪心

目录 一、题目描述&#xff1a; 二、整体思路&#xff1a; 三、代码&#xff1a; 一、题目描述&#xff1a; 二、整体思路&#xff1a; 要在k分钟内拿最多的金牌&#xff0c;就意味着要参加尽可能多的项目&#xff0c;因此就要选择耗时(比赛时间和休息时间)最少的项目先预处…

2024全国水科技大会【联合主办】福州水务集团有限公司

福州水务成立于2008年11月&#xff0c;AA信用评级&#xff0c;注册资本21.2亿元。下属各级企业70多家&#xff08;包括3家国家级高新技术企业、1家A股上市企业&#xff09;。集团主营供水、排水、环保、温泉文旅、综合服务五大板块&#xff0c;旗下运营自来水厂17座&#xff0c…

解锁数据价值:COS支持日志检索与分析功能

前言 腾讯云对象存储服务&#xff08;COS&#xff09;一直致力于为用户提供高效、安全、便捷的云存储服务。但是&#xff0c;当数据流动如同星辰大海&#xff0c;如何捕捉那些关键的瞬间&#xff0c;洞察每一次访问背后的故事&#xff1f;现在&#xff0c;日志检索与分析功能可…