代码之家  ›  专栏  ›  技术社区  ›  Brad Mathews

怎么知道什么时候data.addGeoJson()已完成Google Maps API V3中的渲染功能

  •  0
  • Brad Mathews  · 技术社区  · 6 年前

    map.data.addGeoJson()

    我试过了 addfeature setgeometry 事件但是 之前被发射(324次) idle tilesloaded 而这两个都是在渲染开始之前触发的。 集合几何 根本不开火。

    我需要自动采取的地图屏幕帽,但我需要知道什么时候一切都是完全呈现之前,我这样做。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Brad Mathews    6 年前

    我使用的技术是计算我在google地图中添加了多少功能,然后读取DOM,看看它们是否都出现了。

    您首先需要检查DOM以找到元素和一些特性,这些元素和特性是您的特性所独有的。在我的例子中,它们是带有自定义图标的标记,因此我可以使用src标记:

    <img alt="" src="images/colour008s.png" draggable="false" style="position: absolute; left: 0px; top: 0px; user-select: none; border: 0px; padding: 0px; margin: 0px; max-width: none; width: 22px; height: 34px;">
    

    加载JSON之后,我设置了一个时间间隔来查看它们是否出现,并且至少有我期望的数量:

    timerId = setInterval(function () {
        var points = document.querySelectorAll('img[src="images/colour008s.png"]');
        if (points.length >= totalPoints) {
            clearTimeout(timerId);
            console.log("All points loaded");
        }
    }, 250);
    

    到目前为止效果还不错。