微信小程序中使用地图(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)获取经纬度的方法