我與Google Maps API存在兩難境地 - 我使用GDirections
對象來獲得在兩點之間旅行所需的時間。Google Maps API - GDirections.getDuration()第一次返回null,第二次返回
我已經在Firebug中測試了下面的代碼,以便我影響這一個調用的其他代碼的機會很低(我無法鏈接到實際的地圖;它在本地計算機上)。
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())
並根據需要它。OUPUTS
Object seconds=157994 html=1 day 20 hours
。有誰知道爲什麼這需要兩個電話才能工作?我認爲這是時間依賴性的,因爲在代碼中,如果我只是簡單地調用它兩次,它會連續給我兩次,這並不令人驚訝。不過,我已經使用事件偵聽器來等待它完成加載。我也嘗試使用addoverlay
事件而不是load
事件,但這也不起作用。
有沒有人見過這個或有想法,我怎麼能解決它?任何幫助將不勝感激!
我很欣賞的響應 - 它似乎並不像我的問題是相同的,但。我只有一個過程,獲取方向 - 我認爲GDirections對象可以查詢「從:NY,USA到:CA,USA」,並且能夠獲取方向。這些位置已經被找到並且保存在先前的功能中 - 一個是用戶輸入的,另一個是反向地理編碼的。 – munchybunch 2009-08-07 21:29:43
:D很好,你修正了它..但我想只是當你在這個API上運行兩個函數時小心,導致它線程的所有功能和煩人,當你想要順序執行的事情:D – 2009-08-07 22:48:24