Google距离矩阵ZERO_RESULTS已退回

jam*_*mes 3 javascript google-maps distance google-api google-maps-api-3

前言

我已经使用谷歌地图API很长一段时间了,以前能够在这里成功使用距离矩阵服务.然后我决定做一些重构并出现问题......

目前的问题

尝试获取Distance Matrix服务的结果时,该rows对象包含一个空(status: ZERO_RESULTS)对象数组.

运行时运行时的空对象:

运行时期间的空对象

通常情况如下所示:

运行时的普通对象

代码

coords传递给distanceMatrixCoords()函数的数组.它们看起来像这样:

coords数组

其他变量,例如var origins = pos;使用坐标字符串正确填充.

此处提供包含此代码的整个文件

function distanceMatrixCoords(coords) {
    var origins = pos;
    var destinations = coords;
    var service = new google.maps.DistanceMatrixService();

    service.getDistanceMatrix({
            origins: [origins],
            destinations: destinations,
            travelMode: google.maps.TravelMode.DRIVING,
            unitSystem: google.maps.UnitSystem.IMPERIAL,
            avoidHighways: false,
            avoidTolls: false
        },
        callback
    );

    function callback(response, status) {
        if (status == google.maps.DistanceMatrixStatus.OK) {
            var origins = response.originAddresses;
            var destinations = response.destinationAddresses;
            var distanceElement = [];
            var theRow = null;

            for (var i = 0; i < origins.length; i++) {

                var results = response.rows[i].elements;

                for (var j = 0; j < results.length; j++) {
                    var element = results[j];
                    var distance = element.distance.text;
                    var duration = element.duration.text;
                    var from = origins[i];
                    var to = destinations[j];

                    distanceElement[j] = document.createElement('p');
                    distanceElement[j].innerHTML = results[j].distance.text;
                    distanceElement[j].className = 'distance-cell';
                }
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

最终,基于上面的代码,该行var results = response.rows[i].elements;是代码中断的地方.response.rows是数组中具有多个ZERO_RESULTS的对象.与我之前的代码(上面链接的)相比,该distanceMatrixCoords()函数接收与以前完全相同的数据类型.

response传递给callback()函数的对象包含以下值: 响应对象

destinationAddressesoriginAddresses使用看起来像这个逗号分隔值的坐标正确填充"41.0259285,81.5899887".rows阵列再次成为问题.

我已经查看了许多其他来源的答案,但Google Maps API的距离矩阵服务似乎没有很多可用的资源.我看到了这个问题,但还没有找到答案.

jam*_*mes 6

问题是我从我为获取数据而构建的服务中错误地返回了我的坐标.例如,坐标41.0259285,81.5899887应该是它们的时间41.0259285,-81.5899887.缺少经度前面的减号,因此坐标无效,距离矩阵服务不知道如何处理它们.