Google maps api 3 距离矩阵谷歌地图javascript api3
我玩距离矩阵 获取从一个起点到多个目的地的持续时间。 我有以下代码:Google maps api 3 距离矩阵谷歌地图javascript api3,google-maps-api-3,distance,duration,Google Maps Api 3,Distance,Duration,我玩距离矩阵 获取从一个起点到多个目的地的持续时间。 我有以下代码: var duration = new Array(); var service = new google.maps.DistanceMatrixService(); service.getDistanceMatrix( { origins: [origin], destinations: destination, travelMode: google.m
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]);
var duration=new Array();
var service=new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
来源:[来源],
目的地:目的地,
travelMode:google.maps.travelMode.DRIVING,
避免:错误,
避免收费:错误
},
功能(响应、状态)
{
if(status==google.maps.DistanceMatrixStatus.OK)
{
var destinations=response.destinationaddress;
var results=response.rows[0]。元素;
对于(var j=0;j
但我有“未定义”的警告。当我把alert命令放在回调函数中时,我得到了我想要的警报。这是为什么???我怎样才能修好它
提前谢谢你 将警报移到回调中。该函数是异步执行的回调函数。
var duration=new Array();
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]);
函数计算_距离(){
var service=new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
来源:[来源],
目的地:目的地,
travelMode:google.maps.travelMode.DRIVING,
避免:错误,
避免收费:错误
},
功能(响应、状态)
{
if(status==google.maps.DistanceMatrixStatus.OK)
{
var destinations=response.destinationaddress;
var results=response.rows[0]。元素;
对于(var j=0;j
尝试类似的方法距离矩阵每次可以计算25个距离。我要计算200个距离,然后对它们进行排序,以便将它们输出到表中。我不能异步这样做,因为我将有一个每次25个距离的排序表。我希望你理解我的意思。我理解,但这仍然不是你试图使用的服务涉及异步请求的事实。你将不得不执行批处理请求,并存储结果,以便在最后一批完成后处理。我向OP提出了一个类似的问题。在最后一批完成后,如何获得指示?计算你提出了多少查询以及返回了多少查询。要提高你文章的质量,请包括你的帖子将如何/为什么解决这个问题。