2015-10-15 49 views
1

我有一個HTML文件中像Map.Html谷歌地圖無法正確加載在Web瀏覽器控件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
    <title></title> 
    <script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true"></script> 
    <script type="text/javascript"> 

     var geocoder; 
     var map; 

     function initialize() { 

      geocoder = new google.maps.Geocoder(); 

      var myOptions = { 
       zoom: 8, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      } 

      var address = "Ahmedabad, India" //change the address in order to search the google maps 

      geocoder.geocode({ 'address': address }, function (results, status) { 
       if (status == google.maps.GeocoderStatus.OK) { 
        map.setCenter(results[0].geometry.location); 
        var marker = new google.maps.Marker({ 
         map: map, 
         position: results[0].geometry.location 
        }); 

        var infoWindow = new google.maps.InfoWindow({ 
         content: 'Hello' 
        }); 

        google.maps.event.addListener(marker, "click", function (e) { 
         infoWindow.open(map, marker); 
        }); 

       } else { 
        alert("Geocode was not successful for the following reason: " + status); 
       } 
      }); 

      map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
     } 
    </script> 
</head> 
<body onload="initialize()"> 
    <div id="map_canvas" style="width:100%; height:100%"></div> 
</body> 
</html> 

然後我用下面的代碼加載WebBrowser控件DocumentText這個HTML文件:

using (StreamReader reader = new StreamReader(System.Windows.Forms.Application.StartupPath + "\\Map.html")) 
{ 
_mapHTML = reader.ReadToEnd(); 
} 
webBrowser1.DocumentText = _mapHTML; 

但地圖加載不正確。 放大/縮小,地圖/衛星選項,標記正在顯示,但在地圖顯示上顯示一個白色圖層。

回答

1

解決 - 至少對我來說。

出於某種原因,Webbrowser控件默認爲錯誤版本(實驗性?)。我改變了我的初始化腳本來指定當前的3.3版本,一切都恢復正常。

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.3"></script> 
+0

3.3是退役的版本,所以在內部它採用當前的凍結版本如3.20加載地圖。 –