1

我有一个包含google maps api v3脚本的map.html文件,我一直在尝试使用webbrowser1.DocumentText和Webbrowerser.Document.InvokeScript来运行此脚本不成功。在.net窗口中修改html文件应用

这次我把map.html托管在一个网站上,我的目标是能够修改这个html文件,然后在我的windows应用程序上运行它以显示所需的地址。

下面

是托管前的的map.html代码:http://url.com/map.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 

<script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true&language=es"></script> 
<script type="text/javascript"> 

    var geocoder; 
    var map; 


    function initialize() { 

     geocoder = new google.maps.Geocoder(); 
     //var latlng = new google.maps.LatLng(-34.397, 150.644); 
     var myOptions = { 
      zoom: 16, 
      //center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 

     //var address = document.getElementById("address").value; 
     var address = "Miami Beach, Flordia" //Address to modify in order to display 

     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 
       }); 
      } 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> 

如果您复制并粘贴到一个HTML应该显示迈阿密海滩这段代码,FL

现在

我Windows应用程序我想编辑这个网站上托管的HTML我想改变佛罗里达州迈阿密海滩到佛罗里达州那不勒斯为例。

然后用我的Windows应用程序,一个网页浏览器,并显示为WebBrowser1.Navigate时(“http://url.com/map.html”)

你的帮助是非常赞赏的。

我发现如何修改html,当它保存在本地计算机上,但对于我确切需要的这不是一种可行的方法。

谢谢你,

利奥P.

回答

0

我不会试图修改HTML代码。由于Google地图代码都是JS,我会编写一个JS函数将地图移动到新位置。 你可以从你的应用程序调用该函数(或者甚至可以从那里插入)。

using mshtml; 

//First, navigate to your page: 
Webbrowser1.Navigate("http://url.com/map.html") 


void Webbrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
     //Then call your move function with the new target: 
     mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)Webbrowser1.Document.DomDocument; 
     mshtml.IHTMLWindow2 window = (mshtml.IHTMLWindow2)doc.parentWindow; 
     window.execScript("yourMapMoveFunction('Naples,Florida');"); 
} 

顺便说一句,你的链接不显示在地图......

+0

有人帮我解决这个问题的另一篇文章,其中我其实是试图运行网页浏览器的整个脚本。他的解决方案也适用于这个问题。 “http://stackoverflow.com/questions/11705729/net-windows-application-webbrowser-google-maps-api-v3”非常感谢你的帮助! – TopoX 2012-08-04 18:37:52

相关问题