【问题标题】:distance matrix google maps javascript api3距离矩阵谷歌地图javascript api3
【发布时间】:2011-05-20 00:39:15
【问题描述】:

我玩距离矩阵 http://code.google.com/apis/maps/documentation/javascript/services.html#distance_matrix

获取从一个起点到多个目的地的持续时间。 我有这个代码:

var duration = new Array();
    var service = new google.maps.DistanceMatrixService();
    service.getDistanceMatrix(
    {
        origins: [origin],
        destinations: destination,
        travelMode: google.maps.TravelMode.DRIVING,
        avoidHighways: false,
        avoidTolls: false
    }, 
    function(response, status)
    {
        if (status == google.maps.DistanceMatrixStatus.OK)
        {
            var destinations = response.destinationAddresses;
            var results = response.rows[0].elements;

            for (var j = 0; j < results.length; j++)
                duration[j] = results[j].duration.value;
        }
    });
    alert(duration[0]);

但我有警报“未定义”。当我将警报命令放在回调函数中时,我得到了我想要的警报。这是为什么???我该如何解决?

提前谢谢你!

【问题讨论】:

    标签: google-maps-api-3 distance duration


    【解决方案1】:
    var duration = new Array();
    function calculate_distance(){
        var service = new google.maps.DistanceMatrixService();
        service.getDistanceMatrix(
        {
            origins: [origin],
            destinations: destination,
            travelMode: google.maps.TravelMode.DRIVING,
            avoidHighways: false,
            avoidTolls: false
        }, 
        function(response, status)
        {
            if (status == google.maps.DistanceMatrixStatus.OK)
            {
                var destinations = response.destinationAddresses;
                var results = response.rows[0].elements;
    
                for (var j = 0; j < results.length; j++)
                    duration[j] = results[j].duration.value;
            }
        });
    }
    google.maps.event.addListener(autocomplete, 'place_changed', calculate_distance);
    alert(duration[0]);
    

    尝试类似的方法

    【讨论】:

    • 为提高您的帖子质量,请说明您的帖子将如何/为何解决问题。
    【解决方案2】:

    将警报移到回调中。该函数是一个异步执行的回调。

    【讨论】:

    • 距离矩阵每次可以计算25个距离。我有 200 个距离要计算,然后对它们进行排序以便将它们输出到表格中。我不能异步执行此操作,因为我每次将有一个 25 距离的排序表。我希望你明白我的意思。
    • 我明白,但这仍然不是您尝试使用的服务涉及异步请求的事实。您将不得不批量处理您的请求并在最后一批完成后存储结果以供处理。
    • 我已经向 OP 提出了类似的问题。 最后一批完成后如何获得指示?
    • 数一数你做了多少查询,又得到了多少。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2017-04-11
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多