微信小程序地图(map)组件点击(tap)获取经纬度的方法

  

微信小程序中使用地图(map)组件,通过点击(tap)获取经纬度,按照官方的回应,暂时是没法做到的,从地图组件API多有残缺判断,怀疑是个实习生干的…

  

做个变通,适用性有限,请大家参考。基本思路就是在地图上铺满一层标记,从而通过点击标记获得经纬度。

  

代码如下:& lt;地图id=暗赝肌本任扯?=?02.324520”“40.099994”=?”规模bindcontroltap=癱ontroltap”多边形="{{多边形}}" bindregionchange=皉egionchange”标记="{{标记}}" bindmarkertap=癿arkertap show-location祝辞& lt;/map>

        const应用=getApp ()      const markersize=30      功能范围(启动、边缘、步骤){   (var ret=[];   (边缘开始)*一步比;0;开始步+=){   ret.push(开始);   }   返回受潮湿腐烂;   }      函数标记(东北、西南、规模、宽度、高度){      const markerslng=(东北。经度- southwest.longitude) * markersize/宽度   const markerslat=(东北。纬度- southwest.latitude) * markersize/高度      const maxlon=northeast.longitude   const minlon=southwest.longitude   const maxlat=northeast.latitude   const minlat=southwest.latitude      const朗=范围(minlon、maxlon markerslng)   const背阔?范围(minlat、maxlat markerslat)      让_markers=[]   朗。forEach((朗,我)=比;{   背阔肌。forEach ((lat, j)=比;{   _markers.push ({   id:经度+”、“+纬度,   纬度:纬度,   经度:朗,   iconPath:‘/marker.png ',   α:0.1//将图片设置为透明,通过开发者工具看不出效果,但真机是有效果的   宽度:markersize,   高度:markersize   })   })   })   返回_markers   }      页面({   数据:{   多边形:[],   控制:[{   id: 1、   位置:{   左:0,   上图:300 - 50,   宽度:50,   高度:50   },   点击:真   }],   标记:[]   },   createMarkers () {      这一点。mapCtx=wx.createMapContext(地图)   const查询=wx.createSelectorQuery ()   const地图=query.select(“#地图”).boundingClientRect ()      让这=that.mapCtx.getRegion ({   成功(res1) {   that.mapCtx.getScale ({   成功(它){   query.exec ((res)=比;{   让宽度=res [0] .width;   让身高=res [0] .height;   让_markers=标记(res1。东北部,res1。西南,它。规模、宽度、高度)   that.data。标记=_markers   that.setData (that.data)   })   }   })   }   })   },   regionchange (e) {   this.createMarkers ()   },   markertap (e) {   console.log (e.markerId)   },   controltap (e) {   console.log (e.controlId)   },   alt="微信小程序地图(map)组件点击(tap)获取经纬度的方法">

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

微信小程序地图(map)组件点击(tap)获取经纬度的方法