第一个问题:如何监听到地图移动后的事件。
可以使用:@regionchange事件
虽然上面没有写nvue和vue可用,但是测试了一波,是可以的
在这里插入图片描述

手机安卓和IOS系统的可能会发生的事情,这个大佬写的可以,我没有深入那么多,
地址:https://ask.dcloud.net.cn/article/38699
然后我们只需要再结束移动的监听中,获取到当前中心点的位置,第二个问题出现了,如何获取当前中心点位置。

第二个问题:如何获取当前中心点位置
查看uniapp所有关于地图的解释,我再API中找到一个方法,
根据描述和它带有的方法:
uni.openLocation

好,第二个问题好像也就解决了,最后:

<map id="map" ref="map" :style="{height:windowHeight+'px'}" :latitude="latitude" :longitude="longitude" :markers="markers" 
				:enable-rotate="false" @markertap="getMarkerTap" @regionchange="changeMap"  @updated="onMapFinish"></map>
                        //滑动了地图
			changeMap(e){
				let type = '';  
				const { platform } = uni.getSystemInfoSync();  
				switch (platform) {  
					case 'android':  
						type = e.type;  
						break;  
					case 'ios':  
						type = e.detail.type;  
						break;  
				}  
				if (type === 'end') {  
					// 处理拖拽结束时的逻辑  
					console.log("结束了");
					let mapCtx =uni.createMapContext('map',this);
					 mapCtx.getCenterLocation({
					  success:res=> {
						console.log(res)// 当前中心经纬度位置
						this.latitude = res.latitude;
						this.longitude =res.longitude;
					  }
					})
				}  
			},

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐