1

Google マップ API v3 のスクリプトを含む map.html ファイルがあります。以前、webbrowser1.DocumentText と Webbrower1.Document.InvokeScript を使用してこのスクリプトを実行しようとしましたが、失敗しました。

今回は、web サイトでホストされている 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 に貼り付けると、フロリダ州マイアミ ビーチが表示されます。

今、私の Windows アプリケーションで、Web サイトでホストされているこの html を編集したいと思います。たとえば、フロリダ州マイアミ ビーチをフロリダ州ネープルズに変更したいと考えています。

次に、Windows アプリケーションで webbrowser を使用し、Webbrowser1.Navigate("http://url.com/map.html") として表示します。

あなたの助けは非常に高く評価されています。

コンピューターにローカルに保存されているときにhtmlを変更する方法を見つけましたが、正確に必要な場合、これは実行可能な方法ではありません。

ありがとうございました、

レオ P.

4

1 に答える 1

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

ところで、あなたのリンクは地図を表示しません...

于 2012-08-04T10:32:29.570 に答える