收藏
回答

map添加多种样式的marker,以及给marker设置自定义数据

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 map 客户端 Version 7.0 2.7.0

- 需求的场景描述(希望解决的问题)

给map上的marker绑定数据,并通过点击marker获取到所绑定的数据


比如给marker设置一个object,当触发marker的markerTab点击事件时,可以拿到这个object



最后一次编辑于  06-06  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 小程序社区开发-杰罗米
    小程序社区开发-杰罗米
    06-06

    你好,麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html


    06-06
    赞同
    回复 3
    • 亲爱的Joe
      亲爱的Joe
      06-06

      谢谢您的关注。

      我可能没描述清除。

      我这个是需求的问题:我不知道怎么实现我的需求。

      06-06
      回复
    • 小程序社区开发-杰罗米
      小程序社区开发-杰罗米
      06-06回复亲爱的Joe

      你设置的marker,目前marker是有ID的,你点击marker后悔触发回调,那个回调就有id


      既然是你自己设置的marker,你肯定是知道他的数据是什么样的,可以自行遍历到对应的objecthttps://developers.weixin.qq.com/miniprogram/dev/component/map.html

      06-06
      回复
    • L。🍀
      L。🍀
      09-05
      请问,我可以自定义marker的数据么。比如marker={id:'',longtitud:'',lattued:'',markerType:'A'}这样的,后面那个markertype是我自定义的,然后我在点击marker是获取到我这个自定义数据markertype
      09-05
      回复
  • 守夜
    守夜
    06-06

    我是通过下标的方式获取的 把下标绑定到marker的id上 markerTab点击事件 返回id  获取对象就是 数组[e.XX.id]

    06-06
    赞同
    回复 3
    • 亲爱的Joe
      亲爱的Joe
      06-06

      我的需求里不是每个marker点击后都可以执行相同逻辑的。

      a类的marker点击后执行a逻辑,

      b类的marker点击后执行b逻辑,

      我考虑过使用a.id这样的形式类作为marker的id,可以解决问题,但是我还不知道如何把marker的种类a和数据id id从上述的a.id中切割出来。

      而且文档上说marker最好设置一个number类型的id......

      06-06
      回复
    • 守夜
      守夜
      06-06回复亲爱的Joe

      那你的是两组marker? 你要在id那做操作吗? 类似id+a id+b 然后取的时候你只能截取字符串判断?





      06-06
      回复
    • 亲爱的Joe
      亲爱的Joe
      06-06回复守夜

      原计划那么想的,不过后来我改主意了。

      id我还用number,因为marker是动态添加的,所以,每个marker我都是这么定义的

      marker={id:'',longtitud:'',lattued:'',markerType:'',dataObj:''}

      也就是给marker添加了两个自定义的字段,一个表示类型,一个是marker的对应数据。

      然后marker添加到var markerList=new Array();


      然后把markerList通过this.setData({markers:markerList})设置到地图上;


      然后通过this.data.markers获取地图markers集合,然后编辑集合判断所点击的marker是哪个marker。


      我的版本是2.7.0,网上搜索的时候发现有人说以前的版本.


      当然我还在测试,发现可以使用,只是同一个marker第二次点击的时候,有点问题,大概率是我逻辑上的问题,这个方法是没错

      06-06
      回复