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

Varsayılan olarak, indirme ve bırakma için durmak üzere ara noktalar kullanılır. Ancak bir ara ara noktanın yalnızca geçiş amacıyla tasarlandığını da belirtebilirsiniz.

Bir başlangıç ara noktası, bir geçiş ara noktası ve bir hedef ara nokta içeren bir rota, yalnızca başlangıç noktasını (via) ara noktadan geçerken varış noktası ile varış noktası arasında birleştiren tek bir rota ayağı içerir.

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

via özelliği, kullanıcının haritadaki referans noktalarını sürüklemesine yanıt olarak rota oluştururken en etkilidir. Bu, kullanıcının nihai rotanın nasıl görünebileceğini gerçek zamanlı olarak görmesine olanak tanır ve ara noktaların Compute Rotaları tarafından erişilebilen konumlara yerleştirilmesine yardımcı olur.

Aşağıdaki örnekte, bir ara ara noktanın geçiş ara noktası olarak nasıl işaretleneceği gösterilmektedir.

{
  "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 referans noktasının konumunu adres dizesi veya Artı kodu olarak belirtirseniz API, karşılık gelen yer kimliğine sahip en alakalı konumu bulmaya çalışır. Sonuçlardaki geocodingResults.intermediates dizisi, ara noktaların konumuna karşılık gelen yer kimliğini ve konumla ilgili ek verileri içerir.

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

Örneğin:

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

  • Sonuçlarda geocodingResults dizisini döndürmek 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, üç ara noktanın ikisi için başlangıç, varış noktası ve 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"
      }
    ]
  }
}