使用Promises通过Google Map Distance Matrix API返回值

问题描述

该计划的目标是使用latlng值数组,并使用Google Maps distance Matrix API计算总行驶时间。我面临的问题是它只能将点A的答案打印到点B。我希望能够将这些值以数组形式返回并求和以计算总旅行时间。

代码如下:

    function privateCalculator(sets){
        let len = sets.length;
        let time = 0;
        var s = [];


        let result = 0;
        let lng,lat

        console.log('the set we got: ')
        console.log(sets)
     


    for (let k = 0; k < len; k++){



        let aSet = sets[k];
        console.log('set: ' + aSet);
        let pointA = aSet.a;
        let pointB = aSet.b;

        let o = [{lat: pointA[k],lng: pointA[1]}];

        let dt = [{lat: pointB[k],lng: pointB[1]}];




        let origin1 = o ;
        let destinationA = dt;




        initMap(origin1,destinationA).done(function (response){
            let origins = response.originAddresses;

            // for (let i = 0; i < origins.length; i++) {
            //     let results = response.rows[i].elements;
            //     for (var j = 0; j < results.length; j++) {
            //         //console.log(results[j].distance.text);
            //         //document.getElementById('result').innerHTML += results[j].duration.value;
            //         time = results[j].duration.value;
            //         summaryPanel.innerHTML +=time;
            //         console.log(time)
            //     }
            // }

            console.log('response and value: ')

            console.log('::: '+ JSON.stringify(response.rows))
            console.log('looking at set: '+ k)
            let results = response.rows[0].elements;

                time = results[0].duration.value;


            summaryPanel.innerHTML+= time;
            s.push(time)
            console.log(time);

        }).fail(function (status){
            document.getElementById('result').innerHTML = 'An error occured. Status: ' + status;
        })//use of initMap





    }
      


    }

这是initmap函数

    function privateCalculator(sets){
        let len = sets.length;
        let time = 0;
        var s = [];


        let result = 0;
        let lng,destinationA).done(function (response){
            let origins = response.originAddresses;

            // for (let i = 0; i < origins.length; i++) {
            //     let results = response.rows[i].elements;
            //     for (var j = 0; j < results.length; j++) {
            //         //console.log(results[j].distance.text);
            //         //document.getElementById('result').innerHTML += results[j].duration.value;
            //         time = results[j].duration.value;
            //         summaryPanel.innerHTML +=time;
            //         console.log(time)
            //     }
            // }

            console.log('response and value: ')

            console.log('::: '+ JSON.stringify(response.rows))
            console.log('looking at set: '+ k)
            let results = response.rows[0].elements;

                time = results[0].duration.value;


            summaryPanel.innerHTML+= time;
            s.push(time)
            console.log(time);

        }).fail(function (status){
            document.getElementById('result').innerHTML = 'An error occured. Status: ' + status;
        })//use of initMap





    }
      


    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)