2017-08-27 28 views
-1

でルートがドラッグされたときにイベントがトリガーされる(つまり新しいウェイポイント)Googleのルート上の出発地、目的地、および中間地点に関する緯度と経度情報を抽出できるようにしたいマップビュー。Google Maps JavaScript API

これをテストしながら、私はこの例からhttps://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-directions

を働いている瞬間、私はちょうど私がグローバルスコープで「ルート」と呼ばれる変数に必要な情報を格納しています。

var saveRoute = function (directionsDisplay) { 
    var final_waypoints=[], waypoints; 
    var route_legs = directionsDisplay.directions.routes[0].legs[0]; 
    if(!route_legs) { 
     return 
    } 
    route.start = {'lat': route_legs.start_location.lat(), 'lng': route_legs.start_location.lng()} 
    route.end = {'lat': route_legs.end_location.lat(), 'lng': route_legs.end_location.lng()} 
    var waypoints = route_legs.via_waypoints 

    for(var i=0;i<waypoints.length;i++) { 
     final_waypoints[i] = [waypoints[i].lat(), waypoints[i].lng()] 
    } 
    route.waypoints = final_waypoints; 
} 

は私がDirectionsRendererオブジェクトから情報を読み取り、変数に保存します「setupPlaceChangedListener」で私自身の関数の呼び出しを含めることによって、最初に必要な情報を取得することができますよ。しかし、ユーザーが表示されているルートをドラッグできるようにしたいので、開始ルートと目的地が必ずしも正確なルートに変更する必要はありません。

最初は、変更が発生したときにいつでも自分の機能を再実行するためにイベントをトリガーできることを期待していました。 'dragend'関数は、マップがドラッグされているときにのみ機能し、ドラッグに新しいウェイポイントが含まれている場合は何も行いません。

これを行う方法はありますか? Google Maps APIをこのように誤って使用していますか?これを行うより良い方法はありますか?

答えて

0

Draggable Directionsのドキュメントから:

ドラッグ可能な方向は、クライアント側を変更して表示されるため、ユーザーが表示を変更したときに通知されるようにDirectionsRendererにdirections_changedイベントを監視し、対処することを望むかもしれません行き方。

+0

私はこれを昨日試してみましたが、うまくいきませんでしたが、もう一度やりました。できます!ありがとう。 –

関連する問題