আপনি নিম্নলিখিত রিসোর্সে একটি HTTP POST অনুরোধ পাঠিয়ে Routes Preferred API থেকে রুটের একটি সেট পুনরুদ্ধার করতে পারেন:
https://routespreferred.googleapis.com/v1:computeRoutes
বার্তার মূল অংশে JSON ফর্ম্যাটে আপনার অনুরোধের বিকল্পগুলি অন্তর্ভুক্ত করুন। বিকল্পগুলির সম্পূর্ণ সেট সম্পর্কে তথ্যের জন্য, computeRoutes অনুরোধের মূল অংশটি দেখুন।
অনুরোধের মূল অংশের উদাহরণ
নিম্নলিখিত JSON কোডটি দেখায় কিভাবে একটি computeRoutes অনুরোধের জন্য একটি সাধারণ অনুরোধের বডি তৈরি করতে হয়।
POST /v1:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
"origin":{
"location":{
"latLng":{
"latitude": 37.419734,
"longitude": -122.0827784
}
}
},
"destination":{
"location":{
"latLng":{
"latitude": 37.417670,
"longitude": -122.079595
}
}
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"polylineQuality": "OVERVIEW",
"departureTime": "2019-10-15T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"routeModifiers": {
"avoidTolls": false,
"avoidHighways": false,
"avoidFerries": false
},
"languageCode": "en-US",
"units": "IMPERIAL"
}
উদাহরণ প্রতিক্রিয়া মূল অংশ
নিম্নলিখিত JSON কোডটি উপরের কল থেকে computeRoutes এ ফিরে আসা প্রতিক্রিয়া বডির একটি উদাহরণ।
{
"routes": [
{
"distanceMeters": 772,
"duration": "165s",
"polyline": {
"encodedPolyline": "ipkcFfichVnP@j@BLoFVwM{E?"
}
}
]
}
জিআরপিসি অনুরোধের উদাহরণ
নিচে gRPC অনুরোধের একটি উদাহরণ দেখানো হল।
যাও
package main import ( "context" "fmt" "log" "time" routespreferred "developers.google.com/maps/go/routespreferred/v1" "google.golang.org/api/option" routespb "google.golang.org/genproto/googleapis/maps/routes/v1" "google.golang.org/genproto/googleapis/type/latlng" "google.golang.org/grpc/metadata" ) const ( // https://cloud.google.com/iam/docs/creating-managing-service-account-keys#creating_service_account_keys credentialsFile = "service-account.json" // Note that setting the field mask to * is OK for testing, but discouraged in // production. // For example, for ComputeRoutes, set the field mask to // "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" // in order to get the route distances, durations, and encoded polylines. fieldMask = "*" ) func main() { ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() // instantiate a client c, err := routespreferred.NewRoutesPreferredClient(ctx, option.WithCredentialsFile(credentialsFile)) defer c.Close() if err != nil { log.Fatal(err) } // create the origin using a latitude and longitude origin := &routespb.Waypoint{ LocationType: &routespb.Waypoint_Location{ Location: &routespb.Location{ LatLng: &latlng.LatLng{ Latitude: 37.417670, Longitude: -122.0827784, }, }, }, } // create the destination using a latitude and longitude destination := &routespb.Waypoint{ LocationType: &routespb.Waypoint_Location{ Location: &routespb.Location{ LatLng: &latlng.LatLng{ Latitude: 37.417670, Longitude: -122.079595, }, }, }, } // create the request with additional options req := &routespb.ComputeRoutesRequest{ Origin: origin, Destination: destination, TravelMode: routespb.RouteTravelMode_DRIVE, RoutingPreference: routespb.RoutingPreference_TRAFFIC_AWARE, ComputeAlternativeRoutes: true, Units: routespb.Units_METRIC, LanguageCode: "en-us", RouteModifiers: &routespb.RouteModifiers{ AvoidTolls: false, AvoidHighways: true, AvoidFerries: true, }, PolylineQuality: routespb.PolylineQuality_OVERVIEW, } // set the field mask ctx = metadata.AppendToOutgoingContext(ctx, "X-Goog-Fieldmask", fieldMask) // execute rpc resp, err := c.ComputeRoutes(ctx, req) if err != nil { // "rpc error: code = InvalidArgument desc = Request contains an invalid // argument" may indicate that your project lacks access to Routes Preferred log.Fatal(err) } fmt.Printf("Duration of route %d", resp.Routes[0].Duration.Seconds) }
টোল ফি গণনার উদাহরণ
নিচের উদাহরণে টোল পাস ব্যবহার করার সময় আনুমানিক মূল্য সহ টোল তথ্য ফেরত দেওয়ার জন্য computeRoutes পদ্ধতি ব্যবহার করা হয়েছে।
অনুরোধে উল্লেখিত routes.travelAdvisory.tollInfo ফিল্ড মাস্কের মাধ্যমে এই বৈশিষ্ট্যটি সক্রিয় করা হয়েছে। টোল পাসটি route_modifiers ফিল্ডে উল্লেখ করা হয়েছে। ফেরত দেওয়া টোল মূল্য নির্দিষ্ট পাস দ্বারা ব্যবহৃত মূল্যের উপর ভিত্তি করে। যদি একাধিক পাস নির্দিষ্ট করা থাকে, তাহলে সবচেয়ে কম দামের মূল্য ফেরত দেওয়া হবে।
অনুরোধ:
curl -X POST -d '{
"origin":{
"location":{
"lat_lng":{
"latitude":47.7020056,
"longitude":-122.3479236
}
}
},
"destination":{
"location":{
"lat_lng":{
"latitude":47.6192234,
"longitude": -122.1676792
}
}
},
"travel_mode":"DRIVE",
"route_modifiers":{
"vehicle_info":{
"emission_type": "GASOLINE"
},
"toll_passes": [
"US_MA_EZPASSMA",
"US_WA_GOOD_TO_GO"
]
}
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: <YOUR_API_KEY>' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.travelAdvisory.tollInfo,routes.legs.travelAdvisory.tollInfo' \
'https://routespreferred.googleapis.com/v1alpha:computeRoutes'
প্রতিক্রিয়া:
{
"routes": [
{
"legs": [
{
"travelAdvisory": {
"tollInfo": {
"estimatedPrice": [
{
"currencyCode": "USD",
"units": "3",
"nanos": 400000000
}
]
}
}
}
],
"distanceMeters": 22496,
"duration": "1400s",
"travelAdvisory": {
"tollInfo": {
"estimatedPrice": [
{
"currencyCode": "USD",
"units": "3",
"nanos": 400000000
}
]
}
}
}
]
}