我正在尝试使用谷歌距离矩阵服务返回距离。它返回60-100数据的距离。但对于超过100的大数据,它不起作用。我所做的是,
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
origins: [origin],
destinations: [dest],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback);
这是内循环。
呼叫bac功能是:
function callback(response, status) {
if (status == google.maps.DistanceMatrixStatus.OK) {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
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 =(parseFloat(element.distance.value)/1000).toFixed(1);
var un = '';
if($('input[name=distance-units]:checked').val()=='kms'){
un = themiles;
} else {
un = thekm;
}
var duration = element.duration.text;
var from = origins[i];
var to = destinations[j];
arr.push(distance);
}
}
distancecode++;
if(distancecode==(totalrec+1)){
distancecode=0;
arr.sort(function(a,b){return a-b});
for(k=0;k<=arr.length;k++){
$('#d_'+(k+1)+' .value').html(arr[k]);
$('#d_'+(k+1)+' .units').html(un);
}
arr = [];
}
}
}
我认为代码中没有错误,因为它适用于小数据。那么我该如何确保函数返回大数据的数据。有什么办法吗?我搜索了它,here和here。它描述了与我不同的问题。谢谢。任何形式的帮助都受到高度赞赏。
答案 0 :(得分:1)
对于可以返回结果的目的地的起始次数有限制:
配额#
Distance Matrix服务具有以下使用限制: 注意:发送到距离矩阵服务的每个查询都受允许元素数量的限制,其中原点数乘以目的地数量定义元素数量。
每个请求最多25个来源或25个目的地 每个请求最多100个元素。