當使用拼貼疊加時,我迄今爲止唯一看到的方法是在Google抓取拼貼時收聽,從座標中獲取X,Y,Z座標,並將其與拼貼集進行比較。谷歌地圖拼貼覆蓋 - 在調用拼貼時避免404錯誤?
var tileOptions = {
getTileUrl: function(coord, zoom) {
return "/tiles/" + zoom + "_" + coord.x + "_" + coord.y + ".png";
}
}
如果在該X,Y,Z處的瓦片存在,則發現並正常調用該瓦片。如果沒有,則會出現404錯誤。在我的情況下,我有六組可能同時處於活動狀態的圖塊,創建圖塊的腳本會忽略並且不會創建空白圖塊,這意味着每次地圖更改縮放或位置時,都會有所有瓷磚都試圖加載時,可能會出現上百次錯誤。
嘗試和幫助在某些部分解決這個問題,我已經限制了瓷磚搜索到的區域,該區域的地磚覆蓋:
var tileOptions = {
if (zoom>=16 && zoom<=20) {
if (zoom=16) { if (coord.x>=16000 && coord.x<=16004) { if (coord.y>=24200 && coord.y<=24203) {
getTileUrl: function(coord, zoom) {
//return the tiles
}}}
}
if (zoom=17) //...
}
if (zoom=18) //...
}
//...
}
}
然而,區域跨越的8×10塊區域,並且不完全覆蓋覆蓋。除了僅在用戶試圖偏離地圖時防止錯誤之外,此方法也過於複雜,並且可能會減慢拼貼調用過程的速度。因此,我正在尋找一種「放置」瓷磚的方法來「調用」它們:而不是要求「你有這個瓷磚」的地圖和冒着404錯誤的風險,腳本或函數會說「我有這些瓷磚,放置它們」忽略缺少的瓷磚(空白),理想情況下只加載在頁面上可見的瓷磚。
或者,我也在尋找一種方法,讓函數知道存在哪些圖塊,因此它只會嘗試調用這些圖標,從而避免404錯誤。
總之,我怎樣才能避免404錯誤調用瓷磚?寫問題後
思考:我認爲第一個理想的解決辦法是採取的堆if語句,並將它們轉換成瓦片更加動態的檢查,如果瓷磚存在,使用「返回」來實際調用它;然而,這似乎仍然導致相同的404錯誤,但來自不同的功能。
使用索引:由於meetamit (如果我的理解對不對)下面提出,創建一個索引來檢查瓷磚的存在/不存在第一,而不是調用的瓷磚和使用404作爲支票。但是,使用「Z_X_Y.png」格式的一組圖塊時,我怎樣才能輕鬆創建這些索引?
索引?嗯......想到的第一個想法是沿着定義數組/地圖_中的所有可能拼貼的方式(這裏不是JS上最熟悉的)_並使用if語句層來檢查這個對於Z,X,Y而不是實際要求標題獲得它。對於這種方法,那麼我怎樣才能用「Z_X_Y.png」格式的一組拼圖來輕鬆創建這些索引_(複數因爲所有的疊加略有不同)_。添加到問題 –
好的,我編輯了回答一下... – meetamit
我很明白你在這裏得到什麼,但是試圖手動定義'tiles:[1,1,1,0,1,0,1,1,1,0,1, 0,1,0,1,1,1 ...]'在這種情況下看起來並不吸引人,特別是當我被調用來更頻繁地改變這些瓷磚時。是否有一種方法可以通過腳本脫機創建此索引或一些方法,然後我可以在實際的瓷磚檢查中上傳和參考? –