2016-11-25 29 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); 
}