[英]Google Maps V3 not loading (Asked & Answered)
這個問題已經回答了。 我發現了問題所在。 但是,我在這里發布問答,因為其他人可能處於同樣的困境。
我的谷歌地圖代碼來自我在網上找到的樣本。
在“壞”代碼中有一行看起來像這樣:
var latlng= new google.maps.LatLng(results[0].geometry.location.Ua, results[0].geometry.location.Va);
這段代碼一直工作到昨晚。 使用firebug檢查對象,結果表明位置現在的形式為:{Ta:number,Ua:number}
我的立即解決方法是在需要lat和/或lng時使用lat()和lng()方法。
另一個解決方案是以更智能的方式實例化我的地圖。
是的,愚蠢地依賴於使用螢火蟲檢查員在物體深處發現的屬性。 是的,作為一個谷歌地圖菜鳥和依靠復制粘貼很少或沒有知識獲得了它的正義獎勵。
但是,做一個快速谷歌搜索發現許多人(除了我借來的“樣本”)也直接使用.Va屬性。
因此這里的帖子以防這也是他們的問題。
如果您對發生這種情況的原因感興趣,那很簡單:示例使用的是API的未記錄內部,因此當Google更新Maps JS文件時,它就崩潰了。
更具體地說, Ua
和Va
是由縮小產生的自動生成的變量名。 看起來谷歌刪除了原始來源中的變量,標簽向上移動( Ua
, Va
→ Ta
, Ua
)。
我敢打賭,我確切地知道壞樣本的作者如何提出他的代碼。 他在瀏覽器的開發工具中檢查了一個LatLng
(在你的例子中location
對象的類型),看到那兩個奇怪命名的變量包含他想要的數據,並且隨之而來。 由於lat
和lng
方法在LatLng
的prototype
中“隱藏”,他沒有注意到它們。
這里有兩個教訓:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.