1

我有一个 map.html 文件,其中包含一个用于 google maps api v3 的脚本,我之前一直在尝试使用 webbrowser1.DocumentText 和 Webbrower1.Document.InvokeScript 运行这个脚本,但没有成功。

这次我将 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 中,它应该显示 Miami Beach, FL

现在在我的 Windows 应用程序上,我想编辑托管在一个网站上的这个 html,我想将佛罗里达州迈阿密海滩更改为佛罗里达州那不勒斯作为示例。

然后在我的 Windows 应用程序上使用网络浏览器并将其显示为 Webbrowser1.Navigate("http://url.com/map.html")

非常感谢您的帮助。

我确实发现了如何在将 html 本地保存在我的计算机上时对其进行修改,但对于我真正需要的,这不是一种可行的方法。

谢谢你,

里奥·P。

4

1 回答 1

0

我不会尝试修改 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');");
}

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

于 2012-08-04T10:32:29.570 回答