如何在客户端检测FusionMap磁贴缓存并准备显示?

时间:2013-01-31 06:23:00

标签: google-maps-api-3 google-fusion-tables

我的网页在Google地图上显示运行时生成的FusionTables数据。

问题是:当您创建具有几何类型列的FusionTable并首次显示它时,Google必须在其服务器端缓存中加载所有相关的地图图块。这需要一段时间 - 有时2-3秒,有时15-20秒。 在缓存期间,地图应显示灰色叠加层,上面写着“数据可能仍在加载......”。我想避开这个屏幕,因为它非常多。有时会显示叠加层,有时不会显示。

我正在寻找一种方法来检测是否所有地图图块都已缓存,以便我可以向用户显示地图。

我已经尝试定期刷新地图图块,但这不会给我提供任何反馈,何时停止刷新:

    $("img[src*='googleapis']").each(function(){
       $(this).attr("src",$(this).attr("src")+"&"+(new Date()).getTime());
    }); 

出于这个原因,我正在寻找其他解决方案。

2 个答案:

答案 0 :(得分:0)

尝试简化地理数据。当服务器端进程错过在合理时间内提供地图图块的截止日期时,将显示该消息。通过降低多边形的复杂性,您更有可能看不到“数据可能仍在加载......”消息切片。

您可以通过两种方式降低复杂性:减少定义多边形的顶点(点)数量,并降低纬度/经度位置的精度。

请注意,作为一个FYI,由于不同的观看者一次又一次地调用完全相同的地图,因此处理结果将缓存在服务器端,并且消息变得很多不太可能出现,并且然后通常由于公共缓存。

-Rebecca

答案 1 :(得分:0)

回答我自己的问题:就目前而言,根本无法做到这一点。

作为旁注:我从不建议任何人考虑使用FusionTables来显示动态生成的地理数据。它不是那样设计的。如果您的静态数据集很少变化,则仅使用FT。