uniapp 得到多个位置的距离车程

image.png
//得到多个位置的距离以及车程
const getList = val => {
  data.value=[]
  //这是根据搜索框搜索来的位置信息
  qqmapsdk.value.getSuggestion({
    keyword: val,
    success: res => {
      console.log(res);
      //把这些目的地 按照接口规定的格式存起来
      let addrList = "";
      res.data.map(item => {
        addrList += `${item.location.lat},${item.location.lng};`;
      });
      addrList = addrList.substring(0, addrList.length - 1);
      //存距离和车程
      let matrixList = [];
      //调取api 进行距离计算 , 车程计算
      uni.request({
        url: "https://apis.map.qq.com/ws/distance/v1/matrix",
        method: "POST",
        data: {
          mode: "driving", //开车
          to: addrList, //目的地
          from: userAdds.value.latitude + "," + userAdds.value.longitude, //出发地
          key: "key"
        },
        success: response => {
          //得到数据
          matrixList = response.data.result.rows[0].elements;
          res.data.forEach((item, index) => {

            //时分秒转换
            const seconds = matrixList[index].duration;
            const hours = Math.floor(seconds / 3600);
            const minutes = Math.floor((seconds % 3600) / 60);
            const remainingSeconds = seconds % 60;
            const formattedTime = `${hours}:${minutes}:${remainingSeconds}`;
            
            let obj = {
              title: item.title,
              distance: matrixList[index].distance, //记录米数
              time: formattedTime, //记录秒数
              coordinate: {
                latitude: item.location.lat,
                longitude: item.location.lng
              }
            };
            data.value.push(obj);
          });
          // console.log(data.value, "data------data");
        }
      });
    }
  });
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容