如何使用map.getCenter()和google.maps.event.trigger()

时间:2015-07-13 18:26:42

标签: javascript jquery google-maps bitrix

我正在使用Gmap模块。如果您尝试在隐藏的div上初始化地图,则无法显示。

我们可以在脚本中使用google.maps.event.trigger(map, 'resize');,因为我的地图总是在左上角。

我找到了map.getCenter(); map.setCenter();的解决方案但是当我在我的标签自定义代码中的js文件中使用它时,它不起作用,因为“map”没有定义。

有解决方法吗?

这是我的代码:

$(document).ready(function(){

        $('.spoiler-body1').hide(); 
        $('.spoiler-head').click(function(){

            var mapObj = window[$('.bx-google-map').attr('id')];
            var center = mapObj.getCenter();

            $(this).toggleClass("folded1").toggleClass("unfolded").next().slideToggle();

            google.maps.event.trigger(mapObj, 'resize');

            mapObj.setCenter(center);
        });
    });

1 个答案:

答案 0 :(得分:0)

我假设您在单独的window.onload(或等效的)上初始化地图。在地图初始化之后,需要运行此脚本。现在发生的事情是这个 window.onload在初始化脚本之前略微运行,即使它们在技术上同时触发。

可以通过将此脚本直接附加到地图初始化来解决此问题。这样可以保证时序排好。