2012-08-29 73 views
1

我已經遇到了令人討厭的煩惱問題。我開始測試我的谷歌地圖代碼與較慢的互聯網連接,它不再像它想象的那樣工作了。谷歌地圖v3:如何強制重新加載瓷磚

的問題是,我聽"tilesloaded"事件時,Im做在地圖上的動畫,但由於連接速度慢一些瓷磚可能會掛起和犯規負荷..還有必應地圖的瓦灰中,我的程序不會繼續,因爲它等待它被加載。

我用Firebug的控制檯來趕上錯誤,並說:

圖片損壞或截斷:https://mts0.googleapis.com/[email protected]&src=apiv3&hl=fi-FI&x=18706&y=8527&z=15&s=Galil&style=api%7Csmartmaps

我是粘貼到瀏覽器,並從那裏找到了丟失的平鋪圖像。幫助它!它的存在,但有時犯規負載:)

所以現在的問題是,我怎麼能在一段時間後強制失蹤瓷磚的重裝或全部地磚,據我知道有這將觸發沒有這樣的事件如果一些瓷磚不能加載?並且似乎控制檯上出現的錯誤並不總是給出。我也嘗試使用谷歌地圖的"idle"事件,但它不會等待要加載的貼圖,並會使程序繼續爲滯後。 (不是什麼我想要的。)

我也使用google.maps.event.trigger(my_map, 'resize');,但它似乎有幫助。

編輯:

刷新整個頁面是不是一種選擇,因爲我會失去我的變量等的價值與該緩慢的加載難以測試,但發生平移,以在地圖上的某些特定點,這是所以當遠遠需要重新加載瓷磚。

任何想法? Thnx提前!

回答

2

無法訪問V3 API中的基礎地圖,因此您只需銷燬地圖對象(map = null)並創建一個新的地圖對象。已成功下載的切片仍應位於瀏覽器的緩存中。

+0

最後我做它加載某些地區方法在實際嘗試向用戶顯示它之前映射到緩存(這種方式如果在向用戶顯示緩存的地圖部分時只有一個圖塊掛起,他/她將耐心等待其加載,並且似乎拖動來回地圖會使第二輪出現缺失的圖塊) - 我沒有使用map = null的東西,因爲它會太嚴格我的需求考慮程序狀態。 +1提及緩存和空情況! :) thnx! –

0

首先,這聽起來像一個錯誤(如果超時,API應該重試提取磁貼)。請在issue tracker上提交。

您可能會觸發一次刷新,方法是將更改通知給mapTypeId屬性。

google.maps.event.notify(map, 'mapTypeId')

+0

我得到google.maps.event.notify不是函數 –

3

在JavaScript地圖上瀏覽器調整大小響應,並加載缺磚,因此,所有你需要的是火瀏覽器事件「調整」

var evt = document.createEvent('UIEvents'); 
evt.initUIEvent('resize', true, false,window,0); 
window.dispatchEvent(evt); 
相關問題