This page shows how to get started with the client libraries for Routes API.
Read more about the client libraries in Client Libraries Explained.
Installing the client library
Java
For more information, see Setting Up a Java Development Environment.
See Google Routes API Client for Java for the installation instructions.
Go
For more information, see Setting Up a Go Development Environment.
See Google Routes API Client for Go for the installation instructions.
Setting up authentication
When you use client libraries, you use Application Default Credentials (ADC) to authenticate. For information about setting up ADC, see Provide credentials for Application Default Credentials. For information about using ADC with client libraries, see Authenticate using client libraries.
Using the client library
Java
Compute Routes example:
import com.google.maps.routing.v2.*; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] arguments) throws IOException { RoutesSettings routesSettings = RoutesSettings.newBuilder() .setHeaderProvider(() -> { Mapheaders = new HashMap<>(); headers.put("X-Goog-FieldMask", "*"); return headers; }).build(); RoutesClient routesClient = RoutesClient.create(routesSettings); ComputeRoutesResponse response = routesClient.computeRoutes(ComputeRoutesRequest.newBuilder() .setOrigin(Waypoint.newBuilder().setPlaceId("ChIJeRpOeF67j4AR9ydy_PIzPuM").build()) .setDestination(Waypoint.newBuilder().setPlaceId("ChIJG3kh4hq6j4AR_XuFQnV0_t8").build()) .setRoutingPreference(RoutingPreference.TRAFFIC_AWARE) .setTravelMode(RouteTravelMode.DRIVE).build()); System.out.println("Response: " + response.toString()); } }
Route Matrix example:
import com.google.api.gax.rpc.ServerStream; import com.google.api.gax.rpc.ServerStreamingCallable; import com.google.maps.routing.v2.*; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] arguments) throws IOException { RoutesSettings routesSettings = RoutesSettings.newBuilder() .setHeaderProvider(() -> { Mapheaders = new HashMap<>(); headers.put("X-Goog-FieldMask", "*"); return headers; }).build(); RoutesClient routesClient = RoutesClient.create(routesSettings); ServerStreamingCallable computeRouteMatrix = routesClient.computeRouteMatrixCallable(); ServerStream stream = computeRouteMatrix.call(ComputeRouteMatrixRequest.newBuilder() .addOrigins(RouteMatrixOrigin.newBuilder() .setWaypoint(Waypoint.newBuilder(). setPlaceId("ChIJeRpOeF67j4AR9ydy_PIzPuM").build())) .addDestinations(RouteMatrixDestination.newBuilder() .setWaypoint(Waypoint.newBuilder().setPlaceId("ChIJG3kh4hq6j4AR_XuFQnV0_t8").build()) .build()).setTravelMode(RouteTravelMode.DRIVE) .build()); for (RouteMatrixElement element : stream) { System.out.println("Response : " + element.toString()); } } }
Go
Compute Routes example:
import ( "context" "fmt" "io" "os" routing "cloud.google.com/go/maps/routing/apiv2" "cloud.google.com/go/maps/routing/apiv2/routingpb" "google.golang.org/grpc/metadata" ) func main() { ctx := context.Background() client, err := routing.NewRoutesClient(ctx) if err != nil { fmt.Fprintf(os.Stderr, "error: %v\n", err) os.Exit(1) } computeRoutesReq := routingpb.ComputeRoutesRequest{ Origin: &routingpb.Waypoint{ LocationType: &routingpb.Waypoint_PlaceId{ PlaceId: "ChIJeRpOeF67j4AR9ydy_PIzPuM", }, }, Destination: &routingpb.Waypoint{ LocationType: &routingpb.Waypoint_PlaceId{ PlaceId: "ChIJG3kh4hq6j4AR_XuFQnV0_t8", }, }, RoutingPreference: routingpb.RoutingPreference_TRAFFIC_AWARE, TravelMode: routingpb.RouteTravelMode_DRIVE, } ctx = metadata.AppendToOutgoingContext(ctx, "X-Goog-FieldMask", "*") computeRoutesResponse, err := client.ComputeRoutes(ctx, &computeRoutesReq) if err != nil { fmt.Fprintf(os.Stderr, "error: %v\n", err) os.Exit(1) } fmt.Fprintf(os.Stdout, "response: %v\n", computeRoutesResponse) }
Route Matrix example:
import ( "context" "fmt" "io" "os" routing "cloud.google.com/go/maps/routing/apiv2" "cloud.google.com/go/maps/routing/apiv2/routingpb" "google.golang.org/grpc/metadata" ) func main() { ctx := context.Background() client, err := routing.NewRoutesClient(ctx) if err != nil { fmt.Printf("error: %v\n", err) os.Exit(1) } computeRouteMatrixReq := routingpb.ComputeRouteMatrixRequest{ Origins: []*routingpb.RouteMatrixOrigin{ { Waypoint: &routingpb.Waypoint{ LocationType: &routingpb.Waypoint_PlaceId{ PlaceId: "ChIJeRpOeF67j4AR9ydy_PIzPuM", }, }, }, }, Destinations: []*routingpb.RouteMatrixDestination{ { Waypoint: &routingpb.Waypoint{ LocationType: &routingpb.Waypoint_PlaceId{ PlaceId: "ChIJG3kh4hq6j4AR_XuFQnV0_t8", }, }, }, }, TravelMode: routingpb.RouteTravelMode_DRIVE, } ctx = metadata.AppendToOutgoingContext(ctx, "X-Goog-FieldMask", "*") stream, err := client.ComputeRouteMatrix(ctx, &computeRouteMatrixReq) if err != nil { fmt.Fprintf(os.Stderr, "error: %v\n", err) os.Exit(1) } for { element, err := stream.Recv() if err == io.EOF { break } if err != nil { fmt.Fprintf(os.Stderr, "error: %v\n", err) os.Exit(1) } fmt.Fprintf(os.Stdout, "element: %v\n", element) } }