如何阻止用户多次调用 google 地图 api
How to stop a user initiating multiple calls to google map api
我遇到了 google 地图的问题。
我有一个 HTML 表单,它为用户显示大量数据。该表单被拆分为一个六角手风琴布局,每个六角手风琴布局负责显示用户数据的不同方面。
其中一个手风琴保存着用户的地址和一张 google 地图,地图上有几个代表相关信息的图钉。
如果加载了表单,并且关闭了六角手风琴,则 google 地图 <div>
没有可用于计算缩放设置的垂直高度,我最终得到了一个缩放到行星的范围。
如果在加载表单时手风琴打开,则缩放效果很好(因为地图 <div>
有高度)。
这是众所周知的feature/bug。解决此问题的一种方法是在用户打开六角手风琴时加载 google 地图,或者如果在加载表单时六角手风琴已打开。
我需要实现的目标:如果用户多次打开和关闭手风琴(不刷新表单),我需要防止多次调用 google 映射到 'reload' 映射。
这是一个fiddle:https://jsfiddle.net/fdnuopzv/4/
如您所见,每次打开六角手风琴时都会加载 google 地图。我需要检测地图是否存在,以便它显示现有地图,而不是去获取新地图。
我尝试使用:
if (!google.map) {
map_init();
}
但这并没有达到预期的效果。
有趣的是,如果将 map_init()
行从第 10 行移动到第 65 行,您可以看到零高度如何破坏 google 缩放。
这很低保真,但一种选择是检查容器中的 iframe ...
if ($('#accordianarea' + thisId).find('iframe').length===0) map_init();
我遇到了 google 地图的问题。
我有一个 HTML 表单,它为用户显示大量数据。该表单被拆分为一个六角手风琴布局,每个六角手风琴布局负责显示用户数据的不同方面。
其中一个手风琴保存着用户的地址和一张 google 地图,地图上有几个代表相关信息的图钉。
如果加载了表单,并且关闭了六角手风琴,则 google 地图 <div>
没有可用于计算缩放设置的垂直高度,我最终得到了一个缩放到行星的范围。
如果在加载表单时手风琴打开,则缩放效果很好(因为地图 <div>
有高度)。
这是众所周知的feature/bug。解决此问题的一种方法是在用户打开六角手风琴时加载 google 地图,或者如果在加载表单时六角手风琴已打开。
我需要实现的目标:如果用户多次打开和关闭手风琴(不刷新表单),我需要防止多次调用 google 映射到 'reload' 映射。
这是一个fiddle:https://jsfiddle.net/fdnuopzv/4/
如您所见,每次打开六角手风琴时都会加载 google 地图。我需要检测地图是否存在,以便它显示现有地图,而不是去获取新地图。
我尝试使用:
if (!google.map) {
map_init();
}
但这并没有达到预期的效果。
有趣的是,如果将 map_init()
行从第 10 行移动到第 65 行,您可以看到零高度如何破坏 google 缩放。
这很低保真,但一种选择是检查容器中的 iframe ...
if ($('#accordianarea' + thisId).find('iframe').length===0) map_init();