4

地図のあるサイトがあります。すでに設定されている特定の目的地から出発したい都市名を入力するテキストフィールドがあります。この目的地にたどり着くために、コードにウェイポイントをハードコーディングしました。

これはすべてうまく機能します。クリックすると道順(テキスト形式)が表示されるボタンがあり、別のボタンをクリックすると、開始点と終了点を示す小さな地図が表示されます。このマップにもウェイポイントを追加したいと思います。

次のようにしたい: http://img209.imageshack.us/img209/1121/whatiwant.png

しかし、私が得たものは次のとおりです。 http://img687.imageshack.us/img687/1554/whatigetm.png

2 番目の画像のコード:

window.open("http://maps.google.com/maps?f=d&source=s_d&saddr=" + document.getElementById("fromAddress").value + "&mrad="+waypoints +"&daddr=<%=GetToAddress() %>&hl=sv&geocode=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=ls&sll=37.0625,-95.677068&sspn=47.167389,75.410156&ie=UTF8&z=7&layer=c&pw=2","mywindow");

私の変更前の元の状態:

 window.open("http://maps.google.com/maps?f=d&source=s_d&saddr=" + document.getElementById("fromAddress").value +"&daddr=<%=GetToAddress() %>&hl=sv&geocode=XXXXXXXXXXXXXXXXXXXXXXX=37.0625,-95.677068&sspn=47.167389,75.410156&ie=UTF8&z=7&layer=c&pw=2","mywindow");

元の外観: http://img441.imageshack.us/img441/56/originalhd.png

ここでわかるように、「mrad」プロパティを追加すると、方向テキストも失われます。

これらのプロパティについては、次のリンクで調べています: http://www.seomoz.org/ugc/everything-you-never-wanted-to-know-about-google-maps-parameters http://mashupguide.net /1.0/html/ch02s05.xhtml 緯度経度 に移動するには、Google マップの URL でどのパラメーターを使用すればよいですか?

しかし、ウェイポイントをマップに追加する方法が見つかりません。

基本的に、ウェイポイントをマップに追加すると同時に、最後の写真に示されている方向テキストを失わないようにする方法を探しています。

mrdad プロパティを使用しました。「mrad: 追加の宛先アドレスを指定できます。」

ここで何か誤解していますか?おそらくいくつかのプロパティがありませんか?

答えてくれてありがとう!&何か不明な点があれば質問してください!

//Ra3IDeN

編集:

目的のルートを提供するコード(「ルートを表示」ボタンをクリックすると実行されます):

 function overlayDirections()
        {
            // reset the map
            if(waypoints.length >0){
            request = {
                origin: null,
                destination: null,
                waypoints: [],
                travelMode: google.maps.DirectionsTravelMode.DRIVING,
                optimizeWaypoints:true,
                avoidHighways:true,
                avoidTolls: true
            };

            for (var i = 0; i < markers.length; i++) {
                  markers[i].setMap(null);
                }

              markers = [];
              origin = null;
              destination = null;
              waypoints = [];
              directionsDisplay.setMap(null);
              directionsDisplay = new google.maps.DirectionsRenderer();
              directionsDisplay.setMap(mapdir);
              }

            $("#directions").text('');
             //$("#map_dir").empty();
            viaAddress = document.getElementById('viaAddress').value;
            fromAddress = document.getElementById("fromAddress").value;
            var language  = '<%=CurrentPage.LanguageBranch %>';

            <asp:PlaceHolder ID="Domestic" runat="server" visible="false">
                /*No ferry is needed*/
                var noOfPoints = 2;
                var waypoints = new Array(noOfPoints); 
                waypoints[0] = fromAddress;
                waypoints[1] = '<%=GetToAddress() %>';
            </asp:PlaceHolder>

            <asp:PlaceHolder ID="International" runat="server" visible="false">
                /*Ferry is required*/
                var vpM = fromAddress;
                if (viaAddress == 'Rostock')
                var wp1 = new google.maps.LatLng(55.357953,13.14894);
                else
                var wp1 = new google.maps.LatLng(55.37417,13.14731);
                addMarker(wp1);
                waypoints.push({ location: wp1, stopover: true });
                if(viaAddress != 'Rostock')
                var wp2 = new google.maps.LatLng(53.93406,10.841789);
                else
                var wp2 = new google.maps.LatLng(54.152747,12.098023);
                addMarker(wp2);
                waypoints.push({ location: wp2, stopover: true });
                destination =new google.maps.LatLng(<%=GetToAddress() %>);
                addMarker(destination);

            // set properties to a object
            </asp:PlaceHolder>
                request = {
                origin: vpM,
                destination: destination,
                waypoints: waypoints,
                travelMode: google.maps.DirectionsTravelMode.DRIVING,
                optimizeWaypoints:true,
                avoidHighways:false,
                avoidTolls: true
            };

            //displays the resutl
            directionsDisplay = new google.maps.DirectionsRenderer();
            directionsDisplay.setMap(mapdir);
            directionsDisplay.setPanel(document.getElementById("directions"));

            // draws the route       
            gdir.route(request, function(result, status) {
            if (status == google.maps.DirectionsStatus.OK) {
              directionsDisplay.setDirections(result);
            }
          });     
        }

via プロパティを使用しても何の変更もありませんでしたが、間違った方法で使用したのでしょうか?:

 $('#print-directions').click(function(){
                if (document.getElementById("fromAddress").value != '')
                    window.open("http://maps.google.com/maps?f=d&source=s_d&saddr=" + document.getElementById("fromAddress").value + "&daddr=<%=GetToAddress() %>&hl=sv&geocode=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=ls&sll=37.0625,-95.677068&sspn=47.167389,75.410156&ie=UTF8&z=7&layer=c&pw=2","mywindow" + "&via="+ waypoints[1],waypoints[2]);
                else
                    alert('<%=GetKey("HotelPrintNoFromAddress") %>');
                return false;

            });
4

1 に答える 1

4

よし、最後に!

プログラムで複数の住所を Google マップに追加する

これは、以下で説明するいくつかの特別な調整を加えた、この問題の基本的な解決策でした。公平を期すために、Molle博士はあなたの助けがなければこれを解決することはできませんでした.コードを貼り付けます.コードをコピーして解決策として投稿したい場合は、それを受け入れます.

コメントを確認すると、上記の解決策を理解するのに時間がかかりました。Dr.Molle が行ったことは、最終目的地をウェイポイント 1 として設定したことです。

そのため、私の場合の最終目的地はウェイポイント 1 になり、ウェイポイント 1 はウェイポイント 2 になり、最終目的地はウェイポイント 3 になりました。

明確にするために画像を確認してください: http://img6.imageshack.us/img6/8035/resulty.png

A---開始点

B--->(daddr) ウェイポイント 1

C -------> ウェイポイント 2

D-------> Waypoint 3(元の最終目的地)

また、プロパティ「&dirflg=t」を追加しました。これは、道路通行料を回避し、フェリーで移動するルートを提供してくれるからです。

コード :

 $('#print-directions').click(function(){
        if (document.getElementById("fromAddress").value != ''){
            window.open("http://maps.google.com/maps?f=d&source=s_d&saddr=" + document.getElementById("fromAddress").value + "&daddr=" + request.waypoints[0].location.toUrlValue() + "+" + "to:" + request.waypoints[1].location.toUrlValue()+ "+" + "to:"+"<%=GetToAddress()%>&hl=sv&geocode=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=ls&sll=37.0625,-95.677068&sspn=47.167389,75.410156&ie=UTF8&z=7&layer=c&pw=2" + "&dirflg=t","mywindow");
            }
        else
            alert('<%=GetKey("HotelPrintNoFromAddress") %>');
        return false;
    });

コードの残りの部分を確認するには、[編集] の下にある私の質問を見てください。

Dr.Molleに感謝します。他の人が恩恵を受けられるように、これを十分に明確にしてくれることを願っています。

于 2013-04-18T14:55:10.487 に答える