[微信小程序]计算自己手机到指定位置的距离

微信小程序开发交流qq群   581478349

   承接微信小程序开发。扫码加微信。

正文:

目的: 根据目的地的坐标计算自己手机的位置离目的地的距离的

核心思路: 后续操作必须等所有异步请求都返回了才能继续 使用Promise()

const qqmap = require("../../utils/qqmap-wx-jssdk.js")

var qqmapsdk;



onLoad: function () {

    // 实例化API核心类

    qqmapsdk = new qqmap({

      key: '' //腾讯位置服务的key

    });

    this.data_list()

  },

  // 加载数据列表

  data_list: function () {

    const that = this

    const syncArr = []

    const url = util.apiUrl + 'Index/index_show?program_id=' + app.program_id

    util.request(url, 'post', '', '正在加载数据', function (res) {

      for (let i = 0; i < res.data.k4.length; i++) {

        syncArr.push(that.map(res.data.k4[i].sh_jd))

      }

      Promise.all(syncArr).then(results => {

        for (let j = 0; j < results.length; j++) {

          res.data.k4[j].sh_jd = results[j]

        }

        that.setData({

          arr: res.data,

          lunbo: res.data.k1,

          images: res.data.k2,

          nearby_merchant: res.data.k4

        })

      })

    })

  },

  // 公共方法 根据腾讯地图接口获取计算距离http://lbs.qq.com/qqmap_wx_jssdk/method-calculatedistance.html

  map(data) {

    return new Promise((resolve) => {

      const latitude = data.split(',')

      qqmapsdk.calculateDistance({

        to: [{

          latitude: latitude[0],

          longitude: latitude[1]

        }],

        success(res) {

          const distance = Math.floor(res.result.elements[0].distance / 1000 * 100) / 100

          resolve(distance)

        },

        fail() {

          resolve('')

        }

      })

    })

  },

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a_靖

对你有帮助吗?打赏鼓励一下?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值