小程序点击markers使中心经纬度以及缩放级别发生变化
时间: 2023-05-24 20:04:35 浏览: 403
微信小程序地图(map)组件点击(tap)获取经纬度的方法
5星 · 资源好评率100%
可以通过调用小程序地图组件的mapContext方法,使用mapCtx.moveToLocation()或者mapCtx.includePoints()方法来实现点击markers后地图中心经纬度及缩放级别的变化。
1. 首先,在wxml文件中创建地图组件,并且给markers绑定一个tap事件。
```html
<map id="map" latitude="{{latitude}}" longitude="{{longitude}}" markers="{{markers}}"
bindtap="markertap" style="width: 100%; height: 100%;"></map>
```
2. 在js文件中,定义markertap事件处理函数,获取被点击的marker的坐标。然后通过mapContext的moveToLocation()方法将地图的中心点移动到该marker。
```javascript
Page({
data: {
latitude: 39.984154,
longitude: 116.307490,
markers: [{
id: 1,
latitude: 39.984154,
longitude: 116.307490,
name: 'marker1',
}, {
id: 2,
latitude: 39.983528,
longitude: 116.305293,
name: 'marker2',
}]
},
markertap(e) {
const markerId = e.detail.markerId
const marker = this.data.markers.find(m => m.id == markerId)
const mapCtx = wx.createMapContext('map')
mapCtx.moveToLocation({
latitude: marker.latitude,
longitude: marker.longitude,
success: () => {
mapCtx.getScale({
success: res => {
const scale = Math.max(res.scale, 16)
mapCtx.scaleMap({scale})
}
})
}
})
}
})
```
3. 最后在markertap事件处理函数中,使用mapCtx.getScale()方法获取当前缩放级别,并根据需要设置最小缩放级别。
以上就是实现小程序点击markers使中心经纬度以及缩放级别发生变化的基本方法。
阅读全文