我正在使用Google Maps JavaScript API v3和RequireJS編寫JavaScript應用程序。google.maps.geometry如何定義?
define('gmaps', ['goog!maps,3.9,packages:[geometry],language:de,other_params:sensor=false&channel=...&client=...'],
function(){
return window.google.maps;
});
這在大多數的情況下,工作完全正常,甚至可以通過優化涅槃後的代碼:我爲了得到正確的依賴寫了gmaps一個小包裝。但是,有時我得到一個錯誤,有gmaps
作爲一個依賴,並試圖計算距離的模塊中說gmaps.geometry is undefined
:
define(['gmaps'], function(gmaps) {
return {
...
calcDistance: function(target) {
var position = this.getPosition();
var distance = gmaps.geometry.spherical.computeDistanceBetween(
new gmaps.LatLng(position.latitude, position.longitude),
new gmaps.LatLng(target.latitude, target.longitude)
);
return (distance/1000).toFixed(2);
}
}
});
這隻有當我嘗試頁面後立即執行calcDistance
和所需的數據發生加載和只有時。我想這是與gmaps異步加載的問題,但我不完全理解它。 gmaps如何定義,但gmaps.geometry是未定義的?有沒有什麼辦法解決這一問題?
我有兩個頁面,這兩個追加「?庫=幾何」的網址...他們的作品之一,另一個總是拋出此錯誤。拋出錯誤的那個缺少「&sensor =」。我補充說,它開始工作。 (我認爲傳感器=被折舊!) –
Michael