谷歌在隐藏的div中映射

Rob*_*Rob 10 html javascript maps hidden

我有一个带有两个标签的页面.第一个标签有照片,第二个是谷歌地图.问题是谷歌地图没有完全绘制,因为它是隐藏的div.所以我使用onclick()将initialize()函数移动到地图选项卡的href.这是第一次单击它时有效但当您返回到照片选项卡然后返回到地图选项卡时,地图仅部分绘制.如果您第二次单击地图选项卡它可以完美地工作.有任何想法吗?

标签javascript:

<script type="text/javascript">

$(function () {
    var tabContainers = $('div.tabs > div');

    $('div.tabs ul.tabNavigation a').click(function () {
        tabContainers.hide().filter(this.hash).show();

        $('div.tabs ul.tabNavigation a').removeClass('selected');
        $(this).addClass('selected');

        return false;
    }).filter(':first').click();
});

</script>
Run Code Online (Sandbox Code Playgroud)

谷歌地图javascript:

<script type="text/javascript">
  function initialize() {
    var latlng = new google.maps.LatLng(<?=$lat ?>, <?=$lng ?>);
    var myOptions = {
      zoom: 15,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);

   var marker = new google.maps.Marker({
      position: latlng, 
      map: map, 
      title:"<?=$fulladdress ?>"
  });   
}
</script>
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="tabs">
        <ul class="tabNavigation">
            <li><a href="#first">Photos</a></li>
            <li><a href="#map_canvas" onclick="initialize(); return false;">Map</a></li>
        </ul>


        <div id="first"> </div>
      <div id="map_canvas" ></div>
Run Code Online (Sandbox Code Playgroud)

Dou*_*eux 14

在你需要调整地图大小之前我已经看过了:

google.maps.event.trigger(map, 'resize');
map.setZoom( map.getZoom() );
Run Code Online (Sandbox Code Playgroud)

这适用于V3:

http://code.google.com/p/gmaps-api-issues/issues/detail?id=1448

更多信息:

https://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/251f20b769d116ea/ba3ca54f5e1352a2?pli=1