我有一个map.html文件,其中包含谷歌地图api v3的脚本,我之前一直在尝试使用webbrowser1.DocumentText和Webbrower1.Document.InvokeScript运行此脚本,但未成功。
这次我在一个网站上托管了map.html,我的目标是能够修改这个html文件,然后在我的windows应用程序上运行它,以便显示所需的地址。
以下是托管在ex上的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中,它应该显示佛罗里达州迈阿密海滩的
现在在我的windows应用程序上,我想编辑这个托管在网站上的html,我想把佛罗里达州的迈阿密海滩改为佛罗里达州的那不勒斯。
然后在我的windows应用程序上使用Web浏览器,并将其显示为Webbrowser1。导航("http://url.com/map.html")
非常感谢你的帮助。
当html保存在我的计算机上时,我确实找到了如何修改它,但对于我真正需要的东西来说,这不是一种可行的方法。
谢谢你,
Leo p.
我不会尝试修改html代码。由于谷歌地图的代码都是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');");
}
顺便说一句,你的链接没有显示地图。。。