当使用图块叠加时,我到目前为止看到的唯一方法是在抓取图块时收听Google,从调用中获取X,Y,Z坐标,并将其与图块集进行比较.
var tileOptions = {
getTileUrl: function(coord, zoom) {
return "/tiles/" + zoom + "_" + coord.x + "_" + coord.y + ".png";
}
}
Run Code Online (Sandbox Code Playgroud)
如果该X,Y,Z处的图块存在,则找到并正常调用.如果没有,则会出现404错误.在我的情况下,我有六组瓷砖可能同时处于活动状态,并且创建瓷砖的脚本会忽略并且不会创建空白瓷砖,这意味着每次地图改变缩放或位置时,都有所有磁贴都试图加载时有超过一百四十四个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) //...
}
//...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,该区域跨越8x10块的区域,并且未被覆盖层完全覆盖.除了仅在用户试图偏离地图时防止错误之外,该方法也过于复杂并且可能减慢了调用进程的速度.
因此,我正在寻找一种"放置"瓷砖的方法,以"调用"它们:而不是地图询问"你有这个瓷砖"并冒着404错误的风险,脚本或功能会说"我有这些瓷砖,放置它们"忽略缺少的瓷砖(空白),理想情况下只加载在页面上可见的瓷砖.
或者,我也在寻找一种方法,让函数知道哪些磁贴存在,因此它只会尝试调用这些标题,从而避免404错误.
简而言之,我如何在调用tile时避免404错误?
写完这个问题之后的想法:我假设第一个理想的解决方案是获取if语句的堆栈并将它们转换为更加动态的tile检查,如果存在tile,则使用"return"实际调用它; 然而,这似乎仍然导致相同的404错误,但来自不同的功能.
使用索引:如下所述,通过meetamit (如果我理解正确),创建索引以首先检查tile的存在/不存在,而不是调用tile并使用404作为检查.但是,使用"Z_X_Y.png"格式的一组切片,我怎样才能轻松创建这些索引?
javascript google-maps tiles google-maps-api-3 http-status-code-404