gmap3初始化操作不能正确显示地图中的地图div

问题描述:

我想我真的应该发布新问题,而不是回复封闭帖子。gmap3初始化操作不能正确显示地图中的地图div

这里我有两个地图的选项卡。一个是隐藏的。它们都开始空白并且相同,所以我使用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')}); 
} 
+1

我通过添加功能“调整大小”都在文件准备,不论其显示状态映射解决它。 – KYLO 2012-07-17 18:38:00

+0

可否请您发布此解决方案。我有同样的问题 – 2012-12-13 18:19:37

或者你也可以手动做到这一点:

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

关于这个确切的问题有无数的帖子,但你是第一个真正帮助我解决问题的完整答案。 – 2013-10-09 21:23:51