-2

我尝试在一个页面上显示几个自定义谷歌地图,但是当显示一个时,另一个被窃听,如下所示:在此处输入图像描述

我不觉得它来自我的代码,因为两个容器都适合正确的大小(并且 Google 徽标和“使用条款”正确显示)。但是,“地图图块”不会显示在第二张地图中,而是应用灰色背景。

有什么想法/建议吗?

编辑:第一张地图似乎总是被显示,而其他的总是被窃听。

4

2 回答 2

0

试一试google.maps.event.trigger(secondmap, 'resize');,看看会发生什么。

于 2013-11-04T16:01:02.383 回答
0

我终于找到了如何解决我的问题,这是@Andy 的解决方案和我的解决方案之间的混合。resize确实必须触发该事件,但是缩放级别和地图中心未正确显示,如下所示:

在此处输入图像描述

为了更新缩放级别和中心,我使用了这个自制的方法,它根据地图标记更新地图的边界:

var updateBounds = function ( map, markers ) {
    var bounds = new google.maps.LatLngBounds();

    for ( var i = 0, len = markers.length ; i < len ; i++ ) {
        bounds.extend ( markers[i].marker.position );
    }

    // extend bounds using two invisible markers so the markers don't get too close to the map borders
    var
        extendPoint1 = new google.maps.LatLng ( bounds.getNorthEast().lat() + 0.001, bounds.getNorthEast().lng() + 0.001 ),
        extendPoint2 = new google.maps.LatLng ( bounds.getNorthEast().lat() - 0.001, bounds.getNorthEast().lng() - 0.001 );

    bounds.extend ( extendPoint1 );
    bounds.extend ( extendPoint2 );

    map.fitBounds ( bounds );
};
于 2013-11-05T10:22:26.260 回答