瓦片上的事件开始在 Google Maps v3 中加载

Posted

技术标签:

【中文标题】瓦片上的事件开始在 Google Maps v3 中加载【英文标题】:Event on tiles start loading in Google Maps v3 【发布时间】:2014-10-12 21:09:26 【问题描述】:

我正在寻找一种方法来检测谷歌地图 v3 的图块是否正在加载或图块开始加载时触发的事件。

我的 UI 构建如下:

背景层上有一张地图。 在前台有一个表单,用户可以在其中输入位置。 按下回车后,地图正在平移和缩放到指定位置。

我想做的就是在之后隐藏前景层: 1.地图放大 2.地图平移 3.所有图块都加载完毕

问题是当键入的位置非常接近起始位置时,不会触发“tilesloaded”事件,因为地图只平移了几个像素。所以我不能依赖“tilesloaded”事件。

我也不能依赖“bounds_changed”或“idle”事件,因为它们会在所有图块加载之前触发。

你有什么想法吗?

【问题讨论】:

您解决了自己的问题 - 在 tilesloaded 事件回调中添加 bounds_changedidle 事件侦听器。 不幸的是,tilesloaded 并不总是触发。当地图的移动很小时,不会加载任何图块,因此不会触发tilesloaded 【参考方案1】:

你可以:

    监听tilesloaded-事件并在触发时隐藏表单 捕捉tilesloaded 没有触发的情况,将边界(打开表单时)存储在变量中。观察bounds_changed - 事件并检查存储边界的东北/西南与当前边界之间的差异(以屏幕像素为单位)是否小于 256(即图块的大小)。当它发生时,您可能会假设没有要加载的图块,立即触发tilesloaded-事件。

【讨论】:

以上是关于瓦片上的事件开始在 Google Maps v3 中加载的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google Maps V3 上触发标记的 onclick 事件?

在 maps.google.com 上的缩放比在 Google Maps API v3 上更流畅

Google Maps API v3:如何删除事件监听器?

Google Maps API v3 infowindow 关闭事件/回调?

Google Maps v3 部分加载在左上角,调整大小事件不起作用

Google Maps API v3:在Firefox中未触发自定义标记的点击事件