微信小程序-点击marker标记点进行路线规划(附源码)

 1、微信小程序支持路线规划,官方有现成组件,但是仅支持输入起点终点的经纬度信息进行路线规划,如下图
在这里插入图片描述
 2、官方接口地址:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodDirection
 3、项目需求:点击地图上的标记点,自动进行路线规划,更换标记点就更换路线,效果如图
在这里插入图片描述

 4、要实现项目需求,只需要稍微改动官方提供的接口代码即可
 5、详细步骤
 (1)下载腾讯地图SDK,官方下载链接:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview
在这里插入图片描述
 (2)解压文件后得到两个js文件
在这里插入图片描述
 (3)小程序中新建libs目录,并将两个解压的js文件扔进去
在这里插入图片描述
 (4)在对应的js文件中引入SDK并实例化API
在这里插入图片描述
 (5)部分重点js代码讲解(后面有整体代码)
在这里插入图片描述
在这里插入图片描述

 (6)定义方法之后就是调用,在初次加载地图的时候要显示最近的一条路线规划,在点击marker标记点的时候要触发方法

 5、源码奉上

 wxml

<map id="map" 
 longitude="{{longitude}}"        //map的经度
 latitude="{{latitude}}"          //map的纬度
 show-location="true"             //是否展示当前定位
 include-points="{{markers}}"     //缩放展示所有的标记点
 markers="{{markers}}"            //map上的标记点
 bindmarkertap="markertap"        //点击标记点触发的事件
 polyline="{{polyline}}">         //路线规划 *很重要*
 </map>
//点击marker进行路线规划
getp:function(){
  var that=this;
  qqmapsdk.direction({
    mode: 'walking',//可选值:'driving'(驾车)、'walking'(步行)、'bicycling'(骑行),不填默认:'driving',可不填
    //from参数传入当前定位
    from: {
      latitude:that.data.latitude,
      longitude:that.data.longitude
    },
    //to:传入点击的marker定位
    to:{
      latitude:app.globalData.weidu,
      longitude:app.globalData.jingdu
    },
    success: function (res) {
      console.log(+res);
      // console.log("纬度"+app.globalData.weidu)
      var ret = res;
      var coors = ret.result.routes[0].polyline, pl = [];
      //坐标解压(返回的点串坐标,通过前向差分进行压缩)
      var kr = 1000000;
      for (var i = 2; i < coors.length; i++) {
        coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr;
      }
      //将解压后的坐标放入点串数组pl中
      for (var i = 0; i < coors.length; i += 2) {
        pl.push({ latitude: coors[i], longitude: coors[i + 1] })
      }
      // console.log(pl)
      console.log(that.data.address);
      //设置polyline属性,将路线显示出来,将解压坐标第一个数据作为起点
      that.setData({
        latitude:pl[0].latitude,
        longitude:pl[0].longitude,
        polyline: [{
          arrowLine:true,
          points: pl,
          color: '#3394F8',
          borderColor:'#3394F8',
          borderWidth:6,
          width: 6
        }]
      })
    },
  });
}

 END

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
uni-app是一款基于Vue.js框架的跨平台开发工具,可以同时开发微信小程序、H5、App等多个平台的应用。在uni-app中,我们可以很方便地使用地图组件来标记。 首先,我们需要引入uni-app官方提供的地图组件,在页面的json文件中添加以下代码: ``` { "usingComponents": { "uni-map": "@dcloudio/uni-map/uni-map" } } ``` 然后,在需要使用地图的页面中,在template中添加以下代码: ``` <template> <view> <uni-map :longitude="longitude" :latitude="latitude" :markers="markers" :include-points="true" ></uni-map> </view> </template> ``` 在script中,我们需要定义地图的经纬度和标记的数据: ``` <script> export default { data() { return { longitude: 113.324520, latitude: 23.099994, markers: [{ id: 1, longitude: 113.324520, latitude: 23.099994, title: '标记1', iconPath: '/static/marker.png', width: 30, height: 30 }, { id: 2, longitude: 113.326520, latitude: 23.099994, title: '标记2', iconPath: '/static/marker.png', width: 30, height: 30 }] } } } </script> ``` 我们可以通过设置longitude和latitude来指定地图的中心,通过markers来设置标记的位置、标题、图标等信息。iconPath需要提前准备好对应的图标文件。 最后,在地图组件上设置:include-points="true",可以使得地图自动包含所有标记,确保能够显示所有标记。 以上就是使用uni-app来在微信小程序标记的方法。通过引入uni-app提供的地图组件,结合相关的属性和数据即可实现地图的标记功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值