3

リーフレットのルーティングに nomintim を使用しています。ユーザーが検索ボックスに出発地と目的地の場所を入力すると、下の図のように 2 地点間のルートが表示されます。 ここに画像の説明を入力

しかし、目的地の座標を取得したい。これを行う方法はありますか?以下は、ページにマップを追加する方法のコード サンプルです。

var map = L.map('map').setView([60.4500, 22.2667], 8);


    L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
        attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
    }).addTo(map)


    L.Routing.control({
        waypoints: [
            //L.latLng(60.323935,22.344035)

        ],

        geocoder: L.Control.Geocoder.nominatim()


    }).addTo(map);
4

2 に答える 2

2

RoutingResultEventを見てください。ルートが正常に計算されるたびに呼び出されます。ハンドラーが受け取るイベントには、ルートに使用されるウェイポイントが含まれています。

だから基本的に

var x = L.Routing.control({
    // YOUR STUFF
    geocoder: L.Control.Geocoder.nominatim()
}).addTo(map);
x.on("routesfound", function(e) {
    var waypoints = e.waypoints || [];
    var destination = waypoints[waypoints.length - 1]; // there you have the destination point between your hands

});
于 2015-12-03T16:13:18.223 に答える
0

あなたが使用することができます:

routeControl.on("routesfound", function(e) {
    coordinates=e.routes[0].coordinates;
    destination=coordinates[coordinates.length-1];
});

座標があり、ウェイポイントは座標と同じではありません。探しているのは、見つかったルートの座標であり、要求したウェイポイントではありません。座標を取得できます.length- 1 そしてそこにあなたが望んでいたものがあります

于 2016-12-22T08:18:06.380 に答える