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 rota isteğinde bulunurken 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 seçeneğini true olarak ayarlayın. Aşağıdaki örnekte, computeRoutes yöntemi (REST) isteğinde alternatif rotaların nasıl isteneceği 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 Hangi bilgilerin döndürüleceğini seçme başlıklı makaleyi inceleyin.

Ö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 rotalarda 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ğerleri her rota için farklıdır:

{
  "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. Daha sonra her çoklu çizgi haritada gösterilebilir.

Ç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"
      ]
    }
   ]
}