2016-11-25 32 views
3

我正在谷歌地圖上工作。 Onclick圖像,google map顯示引導模式,使用latlng顯示路徑路徑。所有功能都正常運行,但谷歌地圖在引導模式的左上角開始路徑

地圖起始位置標記,我想中心標記位置時,地圖加載,只是現在是按圖像。起點位於左上角。我檢查了這麼多的例子,但都不在我的代碼中工作。

enter image description here

此外,我試圖用調整大小,觸發功能。

google.maps.event.trigger(map, 'resize'); 

map = new google.maps.Map(document.getElementById("map_canvas"), { 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

HTML

<a href="#mapModal" data-toggle="modal">Click</a> 

模態和腳本

<div id="mapModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="gridModalLabel" aria-hidden="true"> 
     <div class="modal-dialog" role="document"> 
      <div class="modal-content"> 
       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
        <h4 class="modal-title" id="gridModalLabel">Map Display</h4> 
       </div> 
       <div class="modal-body"> 
        <div class="container-fluid bd-example-row"> 
         <div class="row"> 

          <div id="map_polyline" style="width: 100%; height: 655px;"></div> 

          <script type="text/javascript"> 
           function initialize() { 

            var mapProp = new google.maps.Map(document.getElementById('map_polyline'), { 
             zoom: 15, 
             maxZoom: 30, 
             minZoom: 1, 
             streetViewControl: false, 
             center: new google.maps.LatLng(23.01780,72.53076), 
             mapTypeId: google.maps.MapTypeId.ROADMAP 
            }); 

            var myTrip=new Array(); 

            myTrip.push(new google.maps.LatLng(23.01780,72.53076)); 
            myTrip.push(new google.maps.LatLng(23.01846,72.52987)); 
            myTrip.push(new google.maps.LatLng(23.01909,72.53054)); 
            myTrip.push(new google.maps.LatLng(23.01954,72.52991)); 
            myTrip.push(new google.maps.LatLng(23.02060,72.53064)); 
            myTrip.push(new google.maps.LatLng(23.02125,72.53006)); 
            myTrip.push(new google.maps.LatLng(23.02237,72.53076)); 
            myTrip.push(new google.maps.LatLng(23.02306,72.52988)); 
            myTrip.push(new google.maps.LatLng(23.02438,72.53021)); 
            myTrip.push(new google.maps.LatLng(23.02467,72.52899)); 
            myTrip.push(new google.maps.LatLng(23.02486,72.52769)); 
            myTrip.push(new google.maps.LatLng(23.02555,72.52695)); 
            myTrip.push(new google.maps.LatLng(23.02616,72.52656)); 
            myTrip.push(new google.maps.LatLng(23.02704,72.52641)); 
            myTrip.push(new google.maps.LatLng(23.02868,72.52664)); 
            myTrip.push(new google.maps.LatLng(23.03068,72.52700)); 
            myTrip.push(new google.maps.LatLng(23.03173,72.52555)); 

            var flightPath=new google.maps.Polyline({ 
             path:myTrip, 
             strokeColor:"#0000FF", 
             strokeOpacity:0.8, 
             strokeWeight:2 
            }); 
            flightPath.setMap(mapProp); 
            google.maps.event.trigger(mapProp, 'resize'); 
           } 

           google.maps.event.addDomListener(window, 'load', initialize); 
          </script> 
         </div> 
        </div> 
       </div> 
       <div class="modal-footer"> 
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> 
       </div> 
      </div> 
     </div> 
    </div> 

回答

1

嘗試this

$('#myMapModal').on('show.bs.modal', function() { 
    resizeMap(); 
}) 

function resizeMap() { 
    if(typeof map =="undefined") return; 
    setTimeout(function(){resizingMap();} , 400); 
} 

function resizingMap() { 
    if(typeof map =="undefined") return; 
    var center = map.getCenter(); 
    google.maps.event.trigger(map, "resize"); 
    map.setCenter(center); 
}