Rotanın geçtiği bir noktayı ayarlayın

Varsayılan olarak, alma ve bırakma işlemlerinin durması için ara ara noktalar kullanılır. Ancak ara noktanın yalnızca geçmesi gerektiğini de belirtebilirsiniz.

Başlangıç noktası, geçiş ara noktası ve hedef ara nokta içeren bir rota, ara noktadan (via) geçerken kalkış noktası ile varış noktasını bağlayan tek bir rota ayağı içerir.

Ara noktanın via özelliğini, Ara Nokta (REST) veya Ara Noktası (gRPC) kullanarak true olarak ayarlayarak ara noktayı geçiş ara noktası olacak şekilde yapılandırın.

via özelliğinin en etkili olduğu durum, kullanıcının harita üzerinde ara noktaları sürüklemesine yanıt olarak rota oluştururken geçerlidir. Böylece kullanıcılar son rotanın gerçek zamanlı olarak nasıl görünebileceğini görebilir ve ara noktalarının Compute Rotaları tarafından erişilebilen konumlara yerleştirilmesine yardımcı olur.

Aşağıdaki örnek, bir ara referans noktasını geçiş referans noktası olarak nasıl işaretleyeceğinizi gösterir.

{
  "location": {
    "latLng": {
      "latitude":37.419734,
      "longitude":-122.0827784
    }
  },
  "via": true
}

Ara ara noktalar için yer kimliklerine erişme

Bir kalkış noktası, hedef veya ara ara noktanın konumunu adres dizesi veya Artı kodu olarak belirtirseniz API, karşılık gelen bir yer kimliğine sahip en alakalı konumu bulmaya çalışır. Sonuçlardaki geocodingResults.intermediates dizisi, konumla ilgili ek verilerle birlikte ara noktaların konumuna karşılık gelen yer kimliğini içerir.

intermediates dizisinin her bir öğesi için istekteki hangi ara ara noktanın yanıttaki yer kimliğine karşılık geldiğini belirlemek amacıyla intermediateWaypointRequestIndex özelliğini kullanın.

Örneğin:

  • Bir istekte üç ara ara nokta belirtirsiniz. Bu ara noktalardan ikisi adres dizeleriyle, biri ise enlem/boylam koordinatlarıyla belirtilir.

  • Sonuçlarda geocodingResults dizisini döndürmeyi belirtmek için yanıt alanı maskesine geocodingResults eklersiniz.

curl -X POST -d '{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "24 Willie Mays Plaza, San Francisco, CA 94107"
  },
  "intermediates": [
    {
      "address": "450 Serra Mall, Stanford, CA 94305, USA"
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    },
    {
      "address": "1836 El Camino Real, Redwood City, CA 94063"
    }
  ],
  "travelMode": "DRIVE",
}'
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults'
'https://routes.googleapis.com/directions/v2:computeRoutes'

Yanıt; kalkış noktası, hedef ve üç ara noktanın ikisi için yer kimliğini içeren geocodingResults dizisini içerir. Bunlar, isteğin 0 ve 2. dizinindeki ara noktalardır. İsteğin 1. dizinindeki ara nokta, enlem/boylam koordinatları kullanılarak belirtildiği için yanıttaki geocodingResults dizisinden çıkarılır.

{
  "routes": [{...}],
  "geocodingResults": {
    "origin": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g"
    },
    "destination": {
     "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY"
    },
    "intermediates": [
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 0,
        "type": [
            "street_address"
        ],
        "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y"
      },
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 2,
        "type": [
          "premise"
        ],
        "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0"
      }
    ]
  }
}