【问题标题】:gmap3 init action doesn't display map properly in hid divgmap3 init 操作无法在隐藏 div 中正确显示地图
【发布时间】:2012-02-29 22:51:36
【问题描述】:

我认为我真的应该发布新问题而不是回复已关闭的帖子。

在这里,我有两个选项卡,用于 2 张地图。一个是隐藏的。它们都以空白和相同的方式开始,因此我使用 gmap3 选择器一次性初始化两个地图。单击选项卡将显示相应的地图而无需重新初始化。感谢 Philar 和 MattBall,使用调整大小修复了一个显示问题。但是,最初隐藏的地图偏离中心并且处于不同的缩放级别。不知道为什么。有人知道吗?这是代码。

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

【问题讨论】:

  • 我通过添加一个函数来“调整”两个地图的大小来解决这个问题,无论它们在文档准备好后的显示状态如何。
  • 能否请您发布您的修复程序。我有同样的问题

标签: jquery-gmap3


【解决方案1】:

或者您可以手动操作:

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

【讨论】:

  • 关于这个确切问题的帖子数不胜数,但您的帖子是第一个真正帮助我解决问题的完整答案。
猜你喜欢
  • 1970-01-01
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-14
相关资源
最近更新 更多