Test.wxml如下:
<map id="MainMap" longitude="117.275100" latitude="31.86384" scale="5" markers="{{markers}}" bindmarkertap="markertap" class="mapclass" > </map>
Test.js如下:
var markers = [];
const db = wx.cloud.database();
Page({
onLoad: function (options) { this.mapCtx = wx.createMapContext('MainMap') },
onShow: function () { },
onReady: function () {
var that = this
this.mapCtx.getScale({
success: function (res) {
db.collection('MarkerTest').where({ _id: 'Testid' }).get({
success(res) {
that.setData({ markers: res.data })
}
})
}
})
},
markertap(e) {
console.log(e.markerId)
},
})
Test.wss如下:
.mapclass{
width:100%;
height:60vh;
}
用到的云开发数据如下:
集合名称:MarkerTest
记录:"_id":"Testid"
"_openid":略
"latitude":31.86384
"longitude":117.2751
遇到的问题是:点击地图上的marker,函数markertap(e)不会被执行。
期望得到的结果是:点击地图上的marker,会执行markertap(e),即返回console.log(e.markerId)的值。
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
在你的js中没看下有定义的
markers
没太明白您的意思,我在小程序地图上是看到这个marker了。图片上传不上来。
console.log(markers)也是有结果的。
解决了,marker需要设id值。
我这也有这样的问题,markertap在真机调试无响应