uni-app小程序缩放视野包含所有给定点

6 篇文章 2 订阅
4 篇文章 0 订阅

背景:uni-app 小程序 腾讯地图
我的需求就是,有起点和终点,以及一个规划路线的按钮
一开始,只有起点和终点,包含两个点的经纬度,那么视野区就要能够看见这两个点:

onReady() {
			this.mapContext = uni.createMapContext("map", this) // 这个'map'名字要跟map组件的id要同名,才能拿到map组件,调用它的一些API
		},
let points = [{
								latitude: newVal[0].latitude,
								longitude: newVal[0].longitude,
							},
							{
								latitude: newVal[1].latitude,
								longitude: newVal[1].longitude,
							}
						]
						setTimeout(() => {
							this.includePointsFn(points)
						}, 1000)

// 缩放视野
			includePointsFn(points) {
				this.mapContext.includePoints({
					padding: [80, 50, 80, 50],
					points: points
				})
			},

根据自己的需求把这个代码放在所在地,我这是监听起点和终点数组变化,然后执行这个,只要终点和起点一变化,我就立马调用this.includePointsFn(points)这个方法:

watch: {
			markers: {
				handler(newVal, oldVal) {
					if (newVal.length !== 0) {
						let points = [{
								latitude: newVal[0].latitude,
								longitude: newVal[0].longitude,
							},
							{
								latitude: newVal[1].latitude,
								longitude: newVal[1].longitude,
							}
						]
						setTimeout(() => {
							this.includePointsFn(points)
						}, 1000)

					}
				},
				deep: true,
			}
		}

一开始的准备做好了,那么点击规划路线按钮调下面这个方法,我用的是腾讯的sdk:

formSubmit() {
				let _this = this;
				let from = this.markers[0].latitude + ',' + this.markers[0].longitude
				let to = this.markers[1].latitude + ',' + this.markers[1].longitude
				this.qqmapsdk.direction({
					mode: 'driving', // 可选值:'driving'(驾车)、'walking'(步行)、'bicycling'(骑行),不填默认:'driving',可不填
					from,
					to,
					success: function(res) {
						let ret = res
						let coors = ret.result.routes[0].polyline
						let pl = [];
						let kr = 1000000
						for (let i = 2; i < coors.length; i++) {
							coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr;
						}
						//将解压后的坐标放入点串数组pl中
						for (let i = 0; i < coors.length; i += 2) {
							pl.push({
								latitude: coors[i],
								longitude: coors[i + 1]
							})
						}
						// 设置polyline属性,将路线显示出来,将解压坐标第一个数据作为起点
						_this.latitude = pl[0].latitude
						_this.longitude = pl[0].longitude
						_this.polyline = [{
							arrowLine: true,
							points: pl,
							color: '#3ECA37',
							width: 5
						}]
						setTimeout(() => {
							_this.includePointsFn(pl) // 缩放视野展示所有经纬度
						}, 1000)
					},
					fail: function(error) {
						console.log(error)
					},
					complete: function(res) {
						console.log(res)
					}
				})
			}

这样视野就可以包含所有点了。。。
推一篇总结得很好得文章:https://blog.csdn.net/lyandgh/article/details/98348704?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-2-98348704-blog-107694048.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-2-98348704-blog-107694048.pc_relevant_aa&utm_relevant_index=5

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Uni-app 是一款能够开发多个终端的跨平台框架,包括小程序、H5、App 等,可以在同一个代码库中开发出具有不同功能的应用。而 Uni-app 小程序源码就是使用 Uni-app 开发的小程序的代码。 Uni-app 小程序源码具有以下优势: 1. 高效开发:借助 Uni-app 的跨平台开发框架,Uni-app 小程序源码可以快速开发出具有高质量和高性能的小程序。 2. 多平台统一:Uni-app 小程序源码可以快速发布到多个平台的小程序环境中,如微信小程序、支付宝小程序、百度小程序等。 3. 组件库完整:Uni-app 小程序源码提供了完整的组件库和工具库,开发者可以快速开发出小程序。 4. 商业支持:Uni-app 小程序源码由腾讯公司开发,具有较强的商业支持,可以解决开发者在开发过程中的各种问题。 总的来说,Uni-app 小程序源码是一种高效、跨平台的小程序开发方式,可以大大节省开发者的时间和精力。同时,也为多个终端用户提供了更加方便和高效的小程序服务。 ### 回答2: Uni-app是一个跨平台开发框架,支持将一个代码库编译成多个平台的应用程序,其中包括iOS、Android、H5、微信小程序等。而Uni-app小程序源码是指使用Uni-app框架开发出来的小程序代码,通过该源码可以进行二次开发,解析出小程序的各个功能和页面,进行定制化开发,满足不同业务场景的需求。 使用Uni-app小程序源码可以快速实现小程序的开发,不仅减少了代码的编写量,同时也兼容了多个平台,方便用户在不同设备上使用该应用。同时,Uni-app小程序源码的可维护性也很高,因为只需要在一个代码库中进行修改和维护,而不需要针对每个平台单独编写代码。 在使用Uni-app小程序源码时,需要先进行环境搭建,安装相关的开发工具和依赖库,然后即可进行开发。源码中包含小程序的各个功能和页面,开发者可以根据自己的需求进行修改和扩展,同时也可以使用Uni-app提供的组件和API完成自己的开发任务。 需要注意的是,在进行Uni-app小程序源码开发时,需要熟悉Vue.js框架的相关知识,因为Uni-app是基于Vue.js的框架进行开发的。同时,还需要了解小程序开发的相关知识,包括小程序的生命周期、路由、组件等。掌握这些知识后,才能够更好地利用Uni-app小程序源码进行开发,实现优秀的小程序应用。 ### 回答3: uni-app 小程序源码是指在 uni-app 开发框架下开发的小程序代码。uni-app 是一个多端开发框架,可以让开发者使用一套代码同时开发出跨 iOS、Android、H5 等多个平台的应用程序。在这个框架下,我们可以通过 Vue.js 开发小程序,并且使用 uni-app 提供的开发工具来进行调试和编译。 uni-app 具有许多优,如跨平台、快速开发、高效编译等,其提供了丰富的组件和插件,让开发者可以轻松地在小程序上实现各种功能。开发者只需要按照 Vue.js 的组件开发方式去编写小程序代码,就可以实现复杂的应用逻辑。 uni-app 小程序源码的开发需要一定的技术积累和编程经验,同时还需要对互联网技术有一定的了解。一般来说,开发者需要掌握 Vue.js 基础、小程序开发技能等,才能开发出可靠、高效的 uni-app 小程序源码。 总之,uni-app 小程序源码是一个非常有价值的开发项目,可以帮助更多的开发者快速实现小程序应用功能,同时也可以提高开发效率,降低开发成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值