Google地图和引导标签

时间:2015-04-27 18:46:45

标签: javascript html css google-maps google-maps-api-3

所以我一直试图解决这个问题几个小时了。我一直在谷歌搜索,但仍然无法解决问题。

Google maps in contact tab

所以这就是我在切换到bootstrap菜单中的联系人选项卡时看到的内容。



var locations = [
      ['Bondi Beach', -33.890542, 151.274856, 4],
      ['Coogee Beach', -33.923036, 151.259052, 5],
      ['Cronulla Beach', -34.028249, 151.157507, 3],
      ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
      ['Maroubra Beach', -33.950198, 151.259302, 1]
    ];

    var map = new google.maps.Map(document.getElementById('map-canvas'), {
      zoom: 10,
      center: new google.maps.LatLng(-33.92, 151.25),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infowindow = new google.maps.InfoWindow();

    var marker, i;

    for (i = 0; i < locations.length; i++) {  
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map
      });

      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(locations[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));
    }
$("#mapTab").on('shown', function() {

  	/* Trigger map resize event */
	google.maps.event.trigger(map, 'resize');
});



$("#maptab").on("shown", function(e) {
	google.maps.event.trigger(map, "resize");
	map.setCenter(center);
      });
&#13;
#map-canvas img {
  max-width: none !important;
}
#map-canvas {
  min-width: 100% !important;
  max-width: 100% !important;
}
#map-canvas {
  width:100%;
  height:400px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://www.web-dsigns.nl/odt/js/bootstrap.min.js"></script>
<link href="http://www.web-dsigns.nl/odt/css/bootstrap.min.css" rel="stylesheet"/>
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
  <header>
<nav id="nav-header" class="navbar-default" role="navigation">
	<div class="container">
	  <div class="row">
	    <div class="col-sm-12">
	      <div class="row">
		
		<!-- Main Menu -->
		<div class="col-sm-8 col-md-9">
		  <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
		    <ul id="myTab" class="nav navbar-nav navbar-right">
		      <li class="active"><a href="#home" data-toggle="tab">Home</a></li>
		      <li><a href="#products" data-toggle="tab">Products</a></li>
		      <li><a href="#contact" id="mapTab" data-toggle="tab">Contact</a></li>
		      <li><a href="#disclaimer" data-toggle="tab">Disclaimer</a></li>
		    </ul>
		  </div><!-- /.navbar-collapse -->
		</div><!-- col-sm-8 col-md-9 -->
	      </div><!-- /.row -->
	    </div><!-- /.col-sm-12 -->
	  </div><!-- /.row -->
	</div><!-- /.container -->
      </nav>
    </header>
    <!-- Tab panes -->
    <div class="tab-content tab-container">
      <section class="tab-pane fade in active" id="home">
	
      </section>
      <section class="tab-pane fade" id="products">
        
	  </section>
      <section class="tab-pane fade" id="contact">
	  
	  <!-- Google Map -->
      <div id="map-canvas"></div>
        
      </section>
      <section class="tab-pane fade disclaimer" id="disclaimer">
	
      </section>
      </div>
&#13;
&#13;
&#13;

我尝试了很多东西,我知道有很多类似的问题和答案,我试过但我还是无法解决这个问题..

以下是我尝试的一些内容: Google Maps and jQuery Tabs

Google Map in Bootstrap Tab

Multiple Google Maps within Bootstrap Tabs

stackoverflow.com/questions/25727191/bootstrap-tabs-and-google-maps-not-working

1 个答案:

答案 0 :(得分:2)

活动名称为shown.bs.tab

此外,您的代码中没有center - 变量。

这对我有用:

$("#mapTab").on("shown.bs.tab", function(e) {
  var center=map.getCenter();
  google.maps.event.trigger(map, "resize");
  map.setCenter(center);
});