0

私は Google マップ javascript v2 を介して指定された方向の期間と距離を取得しようとしています。私がやっていることは、ボタンをクリックすることです。サーバー側から (gpx ファイルから) 緯度、経度情報を返す ajax リクエストを送信しています。再び、新しいウェイポイント マップから始まるマップで div を再設定します `

<head>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;" type="text/javascript"></script>
<script type="text/javascript">

    var map;
    var directionsPanel;

var directions;

var points_lt = [12.9172543,12.9326889,12.9761378,12.9896399];

var points_lg = [77.6230109,77.6131779,77.6017195,77.5928038];

function initialize() {
    map = new GMap2(document.getElementById("map_canvas"));
    var wp = new Array(2);
    wp[0] = new GLatLng(12.9172543,77.6230109);
    wp[1] = new GLatLng(13.0144572,77.5689697);
    map.setUIToDefault();

    // load directions
    directionsPanel = document.getElementById("route");
    directions = new GDirections(map, directionsPanel);
    directions.loadFromWaypoints(wp);

    }

function ChangeIt(){
    var cur_lt=null;
    var cur_lg=null;
    var cal=$.ajax({
      type: "GET",
      url: "./Handler.php?q=now",
      dataType: "html"
    }); 
    cal.done(function(msg){
       if(msg == 0){
        return false;
       }
       var Gpoint=msg.split("|");
       cur_lt=Gpoint[0];
       cur_lg=Gpoint[1];
       var wp = new Array(2);
       wp[0] = new GLatLng(cur_lt,cur_lg);
       wp[1] = new GLatLng(13.0144572,77.5689697);
       document.getElementById("map_canvas").innerHTML="";  
       map = null;
       directionsPanel.innerHTML = "" ;
       map = new GMap2(document.getElementById("map_canvas"));
       map.setUIToDefault();
       directions = new GDirections(map,directionsPanel);
       directions.loadFromWaypoints(wp);
       alert(directions.getDuration().html);
     });
}   
$(document).ready(function(){
    var a= function(){
            ChangeIt();
    };
    $("#bt1").click(function(){
        ChangeIt();
    });
    //setInterval(a, 3000); 

}); 
</script>

</head>
<body onload="initialize()" onunload="GUnload()">
    <input type="button"  name="bt1" value="Change Route" id="bt1">
    &nbsp;<div id="map_canvas" style="width: 600px; height: 400px ;left:350px"></div>
<div id="route" style="width: 25%; height:480px; float:right; border; 1px solid black;">          </div>

<br/>

`

しかし、getDistance または getDuration を実行しようとすると、アラートが表示されません。予期しない null または何かを返していると思います。助けてください。私はGoogleマップを初めて使用します。間違っている場合はお知らせください

4

2 に答える 2

0

その点に注意してください:

Google Maps JavaScript API バージョン 2 は、2010 年 5 月 19 日に正式に廃止されました。V2 API は 2013 年 5 月 19 日まで引き続き機能します。

Google API V3 に移行することを強くお勧めします

于 2012-11-07T12:17:36.740 に答える
0

ルート案内サービスは非同期です。データがサーバーから返されるまで、結果にアクセスすることはできません。使用可能なイベントの説明については、ドキュメントを参照してください(「ロード」の可能性が高いようですが、v2 を見てからしばらく経ちました)。

Google Maps API v2 は非推奨であり、新しい開発には使用しないでください。

于 2012-11-07T12:18:03.710 に答える