小编Nic*_*ler的帖子

谷歌地图平铺叠加 - 避免调用瓷砖404错误?

当使用图块叠加时,我到目前为止看到的唯一方法是在抓取图块时收听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

4
推荐指数
1
解决办法
3111
查看次数