gmap3初始化操作无法在hid div中正确显示地图

时间:2012-02-29 22:51:36

标签: jquery-gmap3

我认为我真的应该发布新问题,而不是回复一个封闭的帖子。

这里我有两张地图标签。一个是隐藏的。它们都是空白和相同的,所以我使用gmap3选择器一次初始化两个地图。单击选项卡将显示相应的地图而无需重新初始化。感谢Philar和MattBall,使用resize修复了一个显示问题。但是,最初隐藏的地图偏离中心并处于不同的缩放级别。不知道为什么。任何人都有任何想法?这是代码。

function initmap() {  
// setup map and basic overlay
$('.gmap').gmap3(
    { action: 'init',
        options: {
            zoom: DefaultZoom,
            minZoom: DefaultMinZoom,
            center: mapcenter,
            mapTypeId: google.maps.MapTypeId.TERRAIN,
            scrollwheel: false,
            rotateControl: false,
            zoomControl: true,
            zoomControlOptions: {
                position: google.maps.ControlPosition.RIGHT_TOP,
                style: "SMALL"
            },
            panControl: false,
            panControlOptions: {
                position: google.maps.ControlPosition.RIGHT_TOP,
                style: "SMALL"
            },
            streetViewControl: false,
            heading: 90
        }
    },
    { action: 'addGroundOverlay',
        url: '../maps/assets/sectors_color.png',
        bounds: [
            [49.313821, -123.022082],
            [49.199900, -123.264825]
        ],
        tag: 'SectorMapOverlay'
    }
);
map1 = $(mapID1).gmap3('get');
map2 = $(mapID2).gmap3('get');
$("#switchmap").click(function () {google.maps.event.trigger(map1, 'resize')});
$("#switchmap2").click(function () {google.maps.event.trigger(map2, 'resize')});
}

1 个答案:

答案 0 :(得分:4)

或者你可以手动完成:

map = $("#foo-map").gmap3('get');
google.maps.event.trigger(map, 'resize');
map.setZoom(map.getZoom());
map.panToBounds(map.getBounds());