Javascript 返回Google距离矩阵0_结果 前言
我使用谷歌地图API已经有相当一段时间了,之前我已经成功地使用了距离矩阵服务。然后我决定做一些重构,出现了一些问题 当前问题 尝试获取距离矩阵服务的结果时,Javascript 返回Google距离矩阵0_结果 前言,javascript,google-maps,google-maps-api-3,google-api,distance,Javascript,Google Maps,Google Maps Api 3,Google Api,Distance,我使用谷歌地图API已经有相当一段时间了,之前我已经成功地使用了距离矩阵服务。然后我决定做一些重构,出现了一些问题 当前问题 尝试获取距离矩阵服务的结果时,行对象包含一个空(状态:零结果)对象数组 运行时的空对象如下: 通常如下所示: 代码 一个coords数组被传递到distanceMatrixCoords()函数中。它们看起来像这样: 以及其他变量,如var origins=pos已使用坐标字符串正确填充 包含此代码的整个文件是 function distanceMatrixCoord
行
对象包含一个空(状态:零结果
)对象数组
运行时的空对象如下:
通常如下所示:
代码
一个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';
}
}
}
}
}
函数距离矩阵坐标(坐标){
var=pos;
var目的地=坐标;
var service=new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
来源:[来源],
目的地:目的地,
travelMode:google.maps.travelMode.DRIVING,
unitSystem:google.maps.unitSystem.IMPERIAL,
避免:错误,
避免收费:错误
},
回拨
);
函数回调(响应、状态){
if(status==google.maps.DistanceMatrixStatus.OK){
var origins=response.originAddresses;
var destinations=response.destinationaddress;
var distanceElement=[];
var-theRow=null;
对于(变量i=0;i
最后,根据上面的代码,行var results=response.rows[i].elements代码>是代码中断的地方<代码>响应。行
是数组中具有多个零结果的对象。与我以前的代码(上面链接)相比,distanceMatrixCoords()
函数接收的数据类型与以前完全相同
传递到callback()
函数的response
对象包含以下值:
destinationaddress
和originaddress
使用类似于此逗号分隔值的坐标正确填充,“41.0259285,81.5899887”
。再一次,问题是行
数组
我查看了许多其他来源以获得答案,但谷歌地图API的距离矩阵服务似乎没有太多可用的资源。我看到了,但还没有记录答案。问题是我的坐标被错误地从我为获取数据而构建的服务返回。例如,当坐标应为41.0259285,-81.5899887
时,坐标为41.0259285,81.5899887
。经度前面的减号丢失,因此坐标无效,距离矩阵服务不知道如何处理它们。我也有类似的问题,但没有指定“地区”(又名国家代码),并发送了一个“目的地”,即美国的一个地方,以及一组长/纬度坐标
添加预期的国家/地区修复了该问题