Alternatif rotalar alma

Avrupa Ekonomik Alanı'ndaki (AEA) geliştiriciler

Routes API, varsayılan olarak varsayılan rotayı döndürür. Bu rota genellikle başlangıç noktasından varış noktasına giden en hızlı rotadır. Alternatif rotalar istediğinizde API, varsayılan rotayla birlikte en fazla üç rota döndürür. Müşterileriniz daha sonra ihtiyaçlarına en uygun rotayı seçebilir.

Alternatif rotalar isterken dikkat edilmesi gereken noktalar

Alternatif rota isteğinde bulunmak için aşağıdaki noktaları göz önünde bulundurun:

  • Yanıt en fazla üç alternatif rota içerir. Ancak bazen alternatif rota bulunmadığından yanıtta yalnızca varsayılan rota yer alır.

  • Alternatif rotaları hesaplamak için ek işlem gerektiğinden alternatif rota isteğinde bulunmak API'nin yanıt süresini uzatabilir.

Alternatif rotalar isteği örneği

Alternatif rotalar istemek için computeAlternativeRoutes değerini true olarak ayarlayın. Aşağıdaki örnekte, computeRoutes yöntemi (REST) isteğinde alternatif rotaların nasıl isteneceğini gösterilmektedir.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude":42.340173523716736,
        "longitude":-71.05997968330408
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":42.075698891472804,
        "longitude": -72.59806562080408
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference":"TRAFFIC_AWARE",
  "computeAlternativeRoutes": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Bu örnekte, yanıtın her rota için yalnızca duration, distanceMeters, ve routeLabels özelliklerini içermesi amacıyla bir alan maskesi belirtirsiniz. Müşteriniz bu bilgileri kullanarak hangi rotayı izleyeceğini seçebilir. Daha fazla bilgi için Döndürülecek bilgileri seçme bölümüne bakın.

Örnek alternatif rotalar yanıtı

Yanıtta, erişim rotasını tanımlamak için routeLabels dizi özelliğini kullanın:

  • Varsayılan rota için routeLabels özelliği DEFAULT_ROUTE değerini içerir.

  • Alternatif rotalar için routeLabels özelliği DEFAULT_ROUTE_ALTERNATE değerini içerir.

Bu örnekte yanıt, varsayılan rotayı ve iki alternatif rotayı içerir. duration ve distanceMeters özelliklerinin değerlerinin her rota için farklı olduğuna dikkat edin:

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}

Yanıta çoklu çizgileri dahil etme

Kullanıcının rotayı seçmesini kolaylaştırmak için her rotanın çoklu çizgisini yanıta ekleyin. Ardından her çoklu çizgiyi haritada gösterebilirsiniz.

Çoklu çizgiyi eklemek için alan maskesine routes.polyline değerini ekleyin:

-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'

Ardından yanıt, her rotanın çoklu çizgisini içerir:

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "polyline": {
        "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "polyline": {
        "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "polyline": {
        "encodedPolyline": "FVLL|Af@HPAV…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}