2

閉じられた投稿に返信するのではなく、新しい質問を投稿する必要があると思います。

ここには、2 つのマップ用の 2 つのタブがあります。一つは秘伝。それらは両方とも空白で同一であるため、gmap3 セレクターを使用して両方のマップを一度に初期化します。タブをクリックすると、再初期化せずに対応するマップが表示されます。Philar と MattBall のおかげで、サイズ変更を使用することで表示の問題が 1 つ修正されました。ただし、最初に非表示になっているマップは中心から外れており、ズーム レベルも異なります。理由はわかりません。誰でも何か考えがありますか?これがコードです。

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')});
}
4

1 に答える 1

4

または、手動で行うこともできます。

map = $("#foo-map").gmap3('get');
google.maps.event.trigger(map, 'resize');
map.setZoom(map.getZoom());
map.panToBounds(map.getBounds());
于 2013-01-24T12:30:30.670 に答える