JSAPI 高德地图应用---批量初始化点标记、矢量图形

        在高德地图的应用中,地图上展示我们自己自定义覆盖物是很常见的应用,前提是需要覆盖物相应的定位点以及图标即可,但矢量图形不能直接展示图标,可以在信息框中展示;这里我就弄一个标记点的初始化,并且添加上信息框的展示,其他矢量图形类似:代码如下,

   function init() {
      //initPointList是初始化数据的列表
      if (this.initPointList.length > 0) {
        this.initPointList.map(it => {
           //这里可以根据传入图标名称,在本地进行绘制,需要用require来引入
          const imag = require('@/assets/images/map/' + it.icon  + '.png')
           //这里控制了图标显示的大小
          const size = it.iconSize === 'small' ? 28 : it.iconSize === 'mid' ? 38 : 48
          let position = []
      
          const marker = new AMap.Marker({
            zIndex: 200,
            position: itposition,  // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
            title: it.name,
            extData: {
              id: it.id//添加自定义属性,用于高亮
            },
            icon: new AMap.Icon({
              // 图标尺寸
              size: new AMap.Size(size, size),
              // 图标的取图地址
              image: imag,//使用传入的图表标
              // 图标所用图片大小
              imageSize: new AMap.Size(size, size),
              // 图标取图偏移量
              // anchor:'center'
              // imageOffset: new AMap.Pixel(0, 0)

            })
          })
          //鼠标点击marker弹出自定义的信息窗体
         AMap.event.addListener(marker, 'click', () => {
            this.currentMsg = it
            getAllOverlays('marker', it)
          })
          //把每个定位点添加到数据里面,可以批量控制它的显示与隐藏
          this.pointMarkers.push(marker)
        })
        this.map.add(this.pointMarkers)
      }
    }

   // 信息窗口初始化
  function  getAllOverlays (type, item) {
      // 获取当 marker 类型的覆盖物
      const info =createdInfo(item)
      this.pointWindow = new AMap.InfoWindow({
        position: position,
        offset:new AMap.Pixel(-10, -35) ,
        closeWhenClickMap: true,//鼠标点击地图任意位置,信息框消失
        content: info.join(''),
      })

      this.pointWindow.open(this.map)
    },


   // 信息框里展示内容初始化,这里只写一个简单的名称,后续需要可以自己添加
  function  createdInfo(obj){
       const info = []

      info.push(`<p  style='min-width:200px;'  class='input-item'>名称 :${obj.name|| '未知'}</p>`)
      return info
    }

效果如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信JSApi支付是指在微信公众号或小程序内使用JSAPI调起微信支付功能,实现用户在微信内完成付款的一种方式。以下是常见的问题及解决方法: 1. 支付时提示“商户订单号重复” 解决方法:修改商户订单号,确保每笔订单的商户订单号唯一。 2. 支付时提示“支付金额与订单金额不一致” 解决方法:检查订单金额和实际支付金额是否相同,确保订单金额与实际支付金额一致。 3. 支付时提示“支付失败,请稍后再试” 解决方法:检查支付参数是否正确,确保支付参数的完整性和准确性。 4. 支付时提示“当前用户未授权,请先授权登录” 解决方法:用户需要先授权登录,获取用户信息后才能进行支付操作。 5. 支付时提示“当前用户未关注公众号” 解决方法:用户需要先关注公众号,才能进行支付操作。 6. 支付时提示“商户号与appid不匹配” 解决方法:检查商户号和appid是否对应,确保商户号和appid的匹配性。 7. 支付时提示“订单已关闭” 解决方法:订单可能已经被关闭或者已经完成支付,需要重新下单。 8. 支付时提示“系统繁忙,请稍后再试” 解决方法:服务器可能正在维护或者出现故障,需要等待一段时间后再尝试支付。 以上是微信JSApi支付常见问题及解决方法,如果以上方法无法解决问题,可以联系微信支付客服进行咨询。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值