微信小程序中使用地图(地图)组件,通过点击(点击)获取经纬度,按照官方的回应,暂时是没法做到的,从地图组件应用程序接口多有残缺判断,怀疑是个实习生干的.
做个变通,适用性有限,请大家参考。基本思路就是在地图上铺满一层标记,从而通过点击标记获得经纬度。
复制代码代码如下:map id='map '经度='102.324520 '纬度='40.099994 '比例尺='4' bindcontroltap='controltap '多边形=“{ {多边形} }”绑定区域更改=“区域更改”标记=' { { markers } } ' bind marker tap=' marker tap ' show-location style=' width 3360 100%;'高度: 700像素;'/地图
const app=GetApp()const标记大小=30函数范围(开始、边缘、步长){ for(var ret=[];(边缘-开始)*步骤0;start=step) { ret.push(开始);}返回ret}功能标记(东北、西南、比例尺、宽度、高度){ const markerslng=(东北。经度-西南。经度)*标记尺寸/宽度常量标记板条=(东北。纬度-西南。纬度)* markersize/height const maxlon=东北。经度const minlon=西南。经度const maxlat=东北。纬度const minlat=西南。纬度const lons=范围(minlon、maxlon、marker SLT)const lats=范围(min lat、maxlat、marker slat)let _ marker //将图片设置为透明,通过开发者工具看不出效果,但真机是有效果的宽度:标记大小,高度:标记大小})})return _ markers } Page({数据: {多边形:[],控件: [{ id: 1,位置: {左侧: 0 0,顶部: 300 - 50,宽度: 50,高度: 50 },可点击的3: true }],标记3333330让那个=这个。mapctx。getregion({ success(res1){ that。mapctx。getscale({ success(res2){ query。exec((RES)={ let width=RES[0]).宽度;让高度=res[0].身高;let _ markers=markers(res1。东北,res1。东南,res2.scale,width,height)。数据。标记=_标记。setdata(即。data)} })}))})),regionchange(e){ this。createmarkers()},markertap(e){ console。log(e . markerid)},控制轻按(e){ console。log(e . controlid)},onReady(e){ this。createmarkers()})效果如图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。