4

I am using nominatim for leaflet routing. The routing works perfectly as i want-a user can input from and destination location in search box and the map shows the route between the two points as in the picture below. enter image description here

But I want to get the coordinates of the destination location. Is there any way i can do this ? Below is code sample how i have added map to my page.

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);

2 Answers 2

2

Look at the RoutingResultEvent. It will be called each time a route has been successfully calculated. The event the handler will receive contains the waypoints used for the route.

So basically

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

});
Sign up to request clarification or add additional context in comments.

2 Comments

I tried above method. It results in an array - [object,object], but not the actual co-ordinates. The waypoints also results in [object,object],[object,object]. How can i get the actual coordinates out of it ?
You mean, e.waypoints returns [object,object]? Then waypoints[waypoints.length - 1] will return you an object, and this object will contain what you want I guess. liedman.net/leaflet-routing-machine/api/#l-routing-waypoint. In my example, destination.latLng will returns you the lat/lng
1

you can use:

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

there you have the coordinates, the waypoints are not the same as the coordinates, what you are looking for is for the coordinates of the route found, and not for the waypoints that you have asked for, then you can take the coordinates.lenght-1 and there you will have what you wanted

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.