Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Calculate ETA using Google Maps API

testp21
Tera Contributor
Hi Everyone, I have created a string field on incident table. I have lat long of location & assigned_to. How can I calculate ETA using Google Maps API.? Please help.
1 ACCEPTED SOLUTION

Not applicable

You need to have API keys for this. You can create BR with following script-

 

(function executeRule(current, previous /*previous*/) {

    // Call Google Maps Directions API to get route information
    var directionsURL = "https://maps.googleapis.com/maps/api/directions/json" +
        "?origin=" + current.assigned_to.latitude + "," + current..assigned_to.longitude +
        "&destination=" + current.location.latitude + "," + current.location.longitude +
        "&key=ENTER API KEY";

    var response = new sn_ws.RESTMessageV2();
    response.setEndpoint(directionsURL);
    response.setHttpMethod("get");
    var responseBody = response.execute().getBody();
    var parsedResponse = new global.JSON().decode(responseBody);

    if (parsedResponse && parsedResponse.routes && parsedResponse.routes.length > 0) {
        var route = parsedResponse.routes[0];
        if (route && route.legs && route.legs.length > 0) {
            var leg = route.legs[0];
            var etaSeconds = leg.duration.value; // Duration in seconds
            var etaMinutes = Math.round(etaSeconds / 60); // Convert to minutes
            current.u_eta = etaMinutes; // Store ETA in the u_eta field
            current.update(); // Update the record
        }
    }

})(current, previous);

View solution in original post

2 REPLIES 2

Not applicable

You need to have API keys for this. You can create BR with following script-

 

(function executeRule(current, previous /*previous*/) {

    // Call Google Maps Directions API to get route information
    var directionsURL = "https://maps.googleapis.com/maps/api/directions/json" +
        "?origin=" + current.assigned_to.latitude + "," + current..assigned_to.longitude +
        "&destination=" + current.location.latitude + "," + current.location.longitude +
        "&key=ENTER API KEY";

    var response = new sn_ws.RESTMessageV2();
    response.setEndpoint(directionsURL);
    response.setHttpMethod("get");
    var responseBody = response.execute().getBody();
    var parsedResponse = new global.JSON().decode(responseBody);

    if (parsedResponse && parsedResponse.routes && parsedResponse.routes.length > 0) {
        var route = parsedResponse.routes[0];
        if (route && route.legs && route.legs.length > 0) {
            var leg = route.legs[0];
            var etaSeconds = leg.duration.value; // Duration in seconds
            var etaMinutes = Math.round(etaSeconds / 60); // Convert to minutes
            current.u_eta = etaMinutes; // Store ETA in the u_eta field
            current.update(); // Update the record
        }
    }

})(current, previous);

testp21
Tera Contributor

Spot on! Thank you so much Sir!