Döndürülecek bilgileri seçin

Rota veya rota matrisini hesaplamak için bir yöntem çağırdığınızda ilgili alanları sizin için uygundur. geri dönelim. Döndürülen alanların varsayılan listesi yok. Bu listeyi çıkarırsanız yöntemler hata döndürür.

Alan listesini, bir yanıt alanı maskesi oluşturarak belirtebilirsiniz. Ardından URL parametresini $fields veya fields veya HTTP ya da gRPC başlığını X-Goog-FieldMask kullanarak.

Alan maskesi kullanmak, bir alan adına sahip Bu da gereksiz işlem süresi ve faturalandırılan ücretlerin önlenmesine yardımcı olur.

URL parametreleri hakkında daha fazla bilgi için bkz. Sistem Parametreleri.

Yanıt alanı maskesi tanımlama

Yanıt alanı maskesi, yolların virgülle ayrılmış bir listesidir; burada her path değeri, yanıt mesajında benzersiz bir alan belirtir. Yol, üst düzey yanıt mesajından başlar ve bir noktayla ayrılmış yolu gösterir.

Aşağıdaki gibi bir alan yolu oluşturun ve belirtin:

  1. Routes API'den ihtiyacınız olan bilgileri içeren alanları bulun. Ayrıntılar için Alan Referansları bölümüne bakın.
  2. İhtiyaç duyduğunuz alanların yollarını belirleyin ve bunlar için alan maskeleri oluşturun: Ayrıntılar için Kullanmak istediğiniz alan maskesini belirleme başlıklı makaleye bakın.
  3. Alan maskelerini virgülle ayırarak gereken tüm alanlar için alan maskelerini birleştirin. Örneğin, rota ayağı için distanceMeters ve her rota ayağı adımı için süre istemek üzere, her ikisini de virgülle ayırarak, boşluk bırakmadan girin:

    routes.legs.distanceMeters,routes.legs.steps.duration
  4. API isteğinizle birlikte alan maskesini gönderin. Örneğin, bir cURL isteğinde alan maskesini -H ve X-Goog-FieldMask ile belirtirsiniz:

    -H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
Örnekler ve daha fazla ayrıntı için aşağıdaki bölümleri inceleyin.

Alan Referansları

Alan maskeleri aracılığıyla yanıtta isteyebileceğiniz alanları görmek için aşağıdaki listede bağlantısı verilen Routes API referanslarına bakın. Referansta gösterildiği gibi büyük/küçük harf düzeniyle alanları belirtin. Örneğin, routePreference.

Bu referanslar, mevcut alanları içerir; ancak tam alan maskesi yolunu belirlemek için alan hiyerarşisine bakmanız gerekir. Alanların hiyerarşisini almayla ilgili ayrıntılar için Kullanmak istediğiniz alan maskesini belirleme başlıklı makaleye bakın.

  • İşlem rotası alan maskesi
    • REST: Route nesnesini dönüş için yanıt (ör. routes. ile başlar) routes.distanceMeters.
    • gRPC: Route nesnesini yanıtı ekleyin.
  • İşlem rotası matrisi alan maskeleri

Hangi alan maskelerinin kullanılacağını belirleme

Kullanmak istediğiniz alanları nasıl belirleyeceğiniz ve bunlar için alan maskelerini nasıl oluşturacağınız aşağıda açıklanmıştır:

  1. * alan maskesini kullanarak tüm alanları isteyin.
  2. Alanların hiyerarşisine bakın istediğiniz alanları seçin.
  3. Önceki adımda gösterilen alanların hiyerarşisini kullanarak aşağıdaki biçimi kullanarak alan maskelerinizi oluşturun:

    topLevelField[.secondLevelField][.thirdLevelField][...]

Örneğin, bir rotadan alınan bu kısmi yanıt için:

"routes": [
    {
        "legs": [
            {  "steps": [
                    {"distanceMeters": 119},
                    {"distanceMeters": 41}  ]
            }
        ],
        "distanceMeters": 160
    }
]

Rota ayağı için yalnızca distanceMeters alanını döndürmek istiyorsanız; yani önceki örnekteki son distanceMeters, alan maskeniz aşağıdaki gibidir:

routes.legs.distanceMeters

Bunun yerine, rota ayağının her adımı için distanceMeters alanını döndürmek isterseniz; yani önceki örnekte steps altındaki distanceMeters için alan maskeniz aşağıdaki gibidir:

routes.legs.steps.distanceMeters

Her ikisini de almak istiyorsanız, yukarıdaki sonuçla birlikte alan maskeniz aşağıdaki gibi olur:

routes.legs.distanceMeters,routes.legs.steps.distanceMeters

Alan maskesi yolları örneği

Bu bölümde, REST ve gRPC çağrılarında yanıt alanı maskesinin bir parçası olarak alan yolunun nasıl belirtileceğine dair daha fazla örnek bulunmaktadır.

computeRoutes adlı kişiye REST araması

İlk örnekte, Hesaplama yöntemi: computeRoutes yol gösterir. Bu örnekte, başlıkta, yanıttaki rota distanceMeters ve duration alanlarını döndürecek alan maskeleri belirtiyorsunuz. Alan adının önüne routes eklemeyi unutmayın.

X-Goog-FieldMask: routes.distanceMeters,routes.duration

computeRouteMatrix adlı kişiye REST araması

REST computeRouteMatrix için rota matrisini hesaplamak için kullanılan yöntem, başlıkta, değer Her kaynak kombinasyonu için originIndex, destinationIndex ve duration ve hedef:

X-Goog-FieldMask: originIndex,destinationIndex,duration

gRPC çağrısı

gRPC için yanıt alanı maskesini içeren bir değişken belirleyin. Daha sonra bu değişkeni isteğe aktarabilirsiniz.

const (
  fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline"
)

Alan yoluyla dikkat edilmesi gereken noktalar

Yalnızca aşağıdaki alanları doldurmanız gerekir:

  • İşleme sürelerini kısaltarak sonuçlarınız daha düşük bir gecikmeyle döndürülür.
  • Sabit gecikme performansı sağlar. Şu durumda: tüm alanları seçebilir veya en üst düzeydeki tüm alanları seçerseniz yeni alanlar eklendiğinde performansta düşüş yaşanır ve ardından yanıtınıza otomatik olarak eklenir.
  • Daha küçük yanıt boyutunda sonuçlar, bu da daha yüksek ağ işleme hızı anlamına gelir.
  • Gereksiz veri isteğinde bulunmamanızı sağlar, böylece gereksiz işlem süresi ve faturalandırılan ücretler önlenir.

Alan maskesi oluşturmayla ilgili daha fazla bilgi için field_mask.proto da kullanabilirsiniz.

Rota jetonu isteme

Routes API'nin oluşturulan rotalar için rota jetonları döndürmesini istemek amacıyla şu adımları uygulayın:

  1. Rota jetonu döndürmek için aşağıdaki parametreleri ayarlayın:
    • travelMode değerini DRIVE olarak ayarlayın.
    • routingPreference öğesini TRAFFIC_AWARE veya TRAFFIC_AWARE_OPTIMAL olarak ayarlayın.
  2. Rota ara noktalarınızdan hiçbirinin via ara nokta olmadığından emin olun.
  3. Rota jetonu döndürmek için routes.routeToken alan maskesini belirtin:
    X-Goog-FieldMask: routes.routeToken

Planlanan rotanız için rota jetonunu Gezinme SDK'sında kullanabilirsiniz. Daha fazla bilgi için bkz. Rota planlama (Android) veya Rota planlayın (iOS).

Rota jetonu örneği

Tek bir kaynak ve tek hedef için örnek bir cURL isteği gövdesi rota ile birlikte rota jetonu istemek için alan maskeleri kullanan rota süre, mesafe ve rota çoklu çizgisi:

curl -X POST -d
{"origin":{
    "location": {
        "latLng":{
            "latitude":  -37.8167,
            "longitude": 144.9619
        }
    }
},
"destination":{
    "location": {
        "latLng":{
            "latitude":-37.8155,
            "longitude": 144.9663
        }
    }
},
"routingPreference":"TRAFFIC_AWARE",
"travelMode":"DRIVE"
}
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H X-Goog-FieldMask: routes.routeToken,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
'https://routes.googleapis.com/directions/v2:computeRoutes'

Daha fazla bilgi için Compute Routes API referansı.