jam*_*mes 3 javascript google-maps distance google-api google-maps-api-3
我已经使用谷歌地图API很长一段时间了,以前能够在这里成功使用距离矩阵服务.然后我决定做一些重构并出现问题......
尝试获取Distance Matrix服务的结果时,该rows对象包含一个空(status: ZERO_RESULTS)对象数组.
运行时运行时的空对象:

通常情况如下所示:

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

其他变量,例如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()函数的对象包含以下值:

destinationAddresses并originAddresses使用看起来像这个逗号分隔值的坐标正确填充"41.0259285,81.5899887".rows阵列再次成为问题.
我已经查看了许多其他来源的答案,但Google Maps API的距离矩阵服务似乎没有很多可用的资源.我看到了这个问题,但还没有找到答案.
问题是我从我为获取数据而构建的服务中错误地返回了我的坐标.例如,坐标41.0259285,81.5899887应该是它们的时间41.0259285,-81.5899887.缺少经度前面的减号,因此坐标无效,距离矩阵服务不知道如何处理它们.
| 归档时间: |
|
| 查看次数: |
3986 次 |
| 最近记录: |