Döndürülecek alanları seçme

Rota veya rota matrisi istediğinizde, yanıtın döndürmesi gereken bilgileri belirtmek için bir alan maskesi kullanmanız gerekir. Döndürülen alanların varsayılan listesi yoktur. Alan maskesi belirtmezseniz yöntemler hata döndürür.

Alan maskesi kullanmak, gereksiz veri istememenizi de sağlar. Bu da yanıt gecikmesine yardımcı olur ve sisteminizin ihtiyaç duymadığı bilgiler için gereksiz ödeme yapılmasını önler.

İhtiyacınız olan alanların listesini bir yanıt alanı maskesinde belirtirsiniz. Ardından, yanıt alanı maskesini $fields veya fields URL parametresini ya da HTTP veya gRPC başlığını X-Goog-FieldMask kullanarak yöntemlerden birine iletirsiniz.

URL parametreleri hakkında daha fazla bilgi için Sistem Parametreleri başlıklı makaleyi inceleyin.

Yanıt alanı maskesi tanımlama

Yanıt alanı maskesi, her yolun yanıt mesajında benzersiz bir alan belirttiği, virgülle ayrılmış bir yol listesidir. Yol, üst düzey yanıt mesajından başlar ve belirtilen alana giden noktayla ayrılmış bir yol kullanır.

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

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

    routes.legs.distanceMeters,routes.legs.steps.duration
  4. Alan maskesini API isteğinizle birlikte 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ümlere bakın.

Alan Referansları

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

Bu referanslar, kullanılabilir alanları içerir. Ancak tam alan maskesi yolunu belirlemek için alanların hiyerarşisini referans olarak kullanmanız gerekir. Alanların hiyerarşisini alma hakkında ayrıntılı bilgi için Kullanmak istediğiniz alan maskesini belirleme başlıklı makaleyi inceleyin.

  • Compute rota alanı maskesi
    • REST: Yanıtta döndürülecek Route nesnesinin alanlarını belirtir. Yanıtın başına routes. ön eki eklenir (ör. routes.distanceMeters).
    • gRPC: Yanıtta döndürülecek Route nesnesinin alanlarını belirtir.
  • Rota matrisi alan maskelerini hesaplama

Hangi alan maskelerinin kullanılacağını belirleme

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

  1. * alan maskesi kullanarak tüm alanları isteyin.
  2. İstediğiniz alanlara ait yanıtta alanların hiyerarşisine bakın.
  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 adımı için yalnızca distanceMeters alanını (yani önceki örnekteki son distanceMeters alanını) döndürmek istiyorsanız alan maskeniz aşağıdaki gibidir:

routes.legs.distanceMeters

Bunun yerine, rota adımını oluşturan her adım için distanceMeters alanını döndürmek istiyorsanız (yani önceki örnekte steps altındaki distanceMeters) alan maskeniz aşağıdaki gibidir:

routes.legs.steps.distanceMeters

Yukarıdaki sonuçla birlikte ikisini de döndürmek istiyorsanız alan maskenizin değeri şöyledir:

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

Örnek alan maskesi yolları

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

computeRoutes için REST çağrısı

İlk örnekte, bir rota hesaplamak için computeRoutes yöntemine bir REST çağrısı gönderirsiniz. Bu örnekte, yanıtta distanceMeters ve duration yol alanlarının döndürülmesi için üstbilgide alan maskeleri belirtirsiniz. Alan adına routes ön ekini eklemeyi unutmayın.

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

computeRouteMatrix için REST çağrısı

Bir rota matrisini hesaplamak için kullanılan REST computeRouteMatrix yönteminde, her bir kaynak ve hedef kombinasyonu için originIndex, destinationIndex ve duration döndürüleceğini başlıkta belirtin:

X-Goog-FieldMask: originIndex,destinationIndex,duration

gRPC çağrısı

gRPC için yanıt alanı maskesini içeren bir değişken ayarlayın. Ardından bu değişkeni isteğe iletebilirsiniz.

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

Alan yoluyla ilgili dikkat edilmesi gerekenler

Yalnızca ihtiyacınız olan alanları döndürmek için yanıta yalnızca ihtiyacınız olan alanları ekleyin:

  • İşleme sürelerini kısaltır. Böylece sonuçlarınız daha düşük gecikmeli olarak döndürülür.
  • Kararlı gecikme performansı sağlar. Tüm alanları veya üst düzeydeki tüm alanları seçerseniz yeni alanlar eklenip yanıtınıza otomatik olarak dahil edildiğinde performansta düşüş yaşayabilirsiniz.
  • Daha küçük bir yanıt boyutuna neden olur. Bu da daha yüksek ağ işleme hızına dönüşür.
  • Gereksiz veri istememenizi sağlar. Bu da gereksiz işlem süresini ve faturalandırılan ücretleri önlemeye yardımcı olur.

Alan maskesi oluşturma hakkında daha fazla bilgi için field_mask.proto dosyasını inceleyin.