gpt4 book ai didi

javascript - Google Maps API - GDirections.getDuration() 第一次返回 null,第二次有效

转载 作者:行者123 更新时间:2023-11-30 18:57:56 25 4
gpt4 key购买 nike

我在使用 Google Maps API 时遇到了难题 - 我正在使用 GDirections 对象来获取在两点之间旅行所需的时间。

我已经在 Firebug 中测试了以下代码,因此我的其余代码影响这次调用的可能性很低(我无法链接到实际 map ;它在本地计算机上)。

var start = "NY, USA";
var end = "CA, USA";
var searchString = "from: " + start + " to: " + end;

C.console(searchString);

var myDir = new GDirections();

GEvent.addListener(myDir,"load",C.console(myDir,getDuration()));
myDir.load(searchString);

C.console 只是我编写的一个函数,用于将其参数打印到 Firebug 调试日志。当我运行该代码时,它输出 searchString from: NY, USA to: CA, USA 并调用回调函数。但是,它输出 null 而不是 GDirections 对象的持续时间。

接下来,我跑

C.console(myDir.getDuration())

它输出

Object seconds=157994 html=1 day 20 hours

随心所欲。有谁知道为什么需要两次调用才能正常工作?我认为这取决于时间,因为在代码中,如果我简单地调用它两次,它会连续两次给我 null,这并不奇怪。不过,我已经使用了事件监听器来等待它完成加载。我也尝试过使用 addoverlay 事件而不是 load 事件,但这也不起作用。

有没有人以前见过这个问题或者对我如何解决它有想法?任何帮助将不胜感激!

最佳答案

你的问题是这一行

GEvent.addListener(myDir,"load",C.console(myDir,getDuration()));

使 C.console 立即执行,无论它返回什么,都将用作回调函数。那不是你想要的。您想要的是在回调发生时调用 C.console。一种方法是

GEvent.addListener(myDir,"load",function() {
C.console(myDir,getDuration())
});

关于javascript - Google Maps API - GDirections.getDuration() 第一次返回 null,第二次有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1246363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com