2017-05-14 10 views
0

私のグーグルマップは表示されません。時には、私がブートストラップのナビゲーションタブの中に入れようとしているときに、グレーボックスが表示されることがあります。私は本当にjsやgoogles apiで多くの経験を持っていないので、どんな入力が素敵になるでしょうかGoogle maps trouble bootstrap v4

css--- 
    .map{ 
    height:900px; 
    width: 300px; 
} 
js--- 
/*global google */ 

function initMap() { 

    var westerdals = { lat: 59.9159279, lng: 10.7608717, MapHeight: 300, MapWidth: 900 }; 
    var map = new google.maps.Map(document.getElementById("map"), { 
     zoom: 15, 

     center: westerdals 
    }); 
    var marker = new google.maps.Marker({ 
     position: westerdals, 
     map: map, 
     title: "Fjerdingen" 
    });} 
html--- 

    <div class="col-9"> 

       <ul class="nav nav-tabs" role="tablist"> 
        <li class="nav-item"> 
         <a class="nav-link active" href="#profile" role="tab" data-toggle="tab">Bilde</a> 
        </li> 
        <li class="nav-item"> 
         <a class="nav-link" href="#buzz" role="tab" data-toggle="tab">Kart</a> 
        </li> 

       </ul> 

       <!-- Tab panes --> 
       <div class="tab-content"> 
        <div role="tabpanel" class="tab-pane in active" id="profile"><img class="img-fluid" id="bildeboks" 
                         src="http://placehold.it/900x300"> 
        </div> 
        <div role="tabpanel" class="tab-pane fade" id="buzz"><div id="map"></div></div> 

       </div> <script src="https://maps.googleapis.com/maps/AIzaSyCfvxt8VTbtTyl8lqB2hZCOSAAW22oOt8s/js?callback=map"></script> 
+0

'callback = map' - 地図と呼ばれる**機能**がありますか? - あなたのコードが何かであれば、スクリプトのURLを 'callback = initMap'に変更する必要があるでしょうが、' https:// maps.googleapis.com/maps/AIzaSyCfvxt8VTbtTyl8lqB2hZCOSAAW22oOt8s/js'は完全なゴミですグーグルマップapiも同様です。これは 'https://maps.googleapis.com/maps/api/js?key = YOUR_API_KEY&callback = initMap'のようなものでなければなりません –

答えて

0

あなたはいくつかのことを修正する必要があります。あなたは、あなたが#ID_SELECTOR

  • google mapのためにあなたのURLを確認を使用する必要がIDを使用した場合TUは、正しいselectprを使用していCSSで

    • 。 Jaromanda Xが言うように。

    あなたは、ブートストラップタブの変更Googleマップのサイズ変更イベントをトリガする必要があり、ここで

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css"> 
     
    <style> 
     
        #map{ 
     
        height:900px; 
     
        width: 100%; 
     
    } 
     
    </style> 
     
    
     
    <ul id="myTab" class="nav nav-tabs" role="tablist"> 
     
        <li class="nav-item"> 
     
         <a class="nav-link active" href="#profile" role="tab" data-toggle="tab">Bilde</a> 
     
        </li> 
     
        <li class="nav-item"> 
     
         <a class="nav-link" id="tab-map" href="#buzz" role="tab" data-toggle="tab">Kart</a> 
     
        </li> 
     
    
     
    </ul> 
     
    
     
    <!-- Tab panes --> 
     
    <div class="tab-content"> 
     
        <div role="tabpanel" class="tab-pane in active" id="profile"> 
     
    
     
    
     
         <img class="img-fluid" id="bildeboks" 
     
                         src="http://placehold.it/900x300"> 
     
        </div> 
     
        <div role="tabpanel" class="tab-pane fade" id="buzz"> 
     
         <div id="map"></div> 
     
        </div> 
     
    
     
    </div> 
     
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> 
     
    <script> 
     
        var map; 
     
         var westerdals = { lat: 59.9159279, lng: 10.7608717, MapHeight: 300, MapWidth: 900 }; 
     
        function initMap() { 
     
    
     
        map = new google.maps.Map(document.getElementById("map"), { 
     
         zoom: 15, 
     
         center: westerdals 
     
        }); 
     
        var marker = new google.maps.Marker({ 
     
         position: westerdals, 
     
         map: map, 
     
         title: "Fjerdingen" 
     
        }); 
     
    
     
        } 
     
    
     
        $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { 
     
         e.target // newly activated tab 
     
         e.relatedTarget // previous active tab 
     
         if(e.target.id === "tab-map") { 
     
          google.maps.event.trigger(map, "resize"); 
     
          map.setCenter(westerdals); 
     
         } 
     
        }); 
     
    </script> 
     
    <script src="https://maps.googleapis.com/maps/api/js?callback=initMap&sensor=false"></script> 
     
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script> 
     
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>

    私の解決策を確認してください。ブートストラップページがロードされるときに、第2のタブが隠されているので起こりhere

    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { 
        e.target // newly activated tab 
        e.relatedTarget // previous active tab 
        // check if the newly activated tab is the second tab 
        if(e.target.id === "tab-map") { 
         google.maps.event.trigger(map, "resize"); 
         map.setCenter(westerdals); 
        } 
    }); 
    

    のマニュアルを参照してください。