Avrupa Ekonomik Alanı'ndaki (AEA) geliştiriciler

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

Rota veya rota matrisi istediğinizde, yanıtın hangi bilgileri döndürmesi gerektiğini belirtmek için alan maskesi kullanmanız gerekir. Döndürülen alanların varsayılan bir 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ığı bilgilerin döndürülmesini önler.

İhtiyacınız olan alanların listesini yanıt alanı maskesinde belirtirsiniz. Ardından, $fields veya fields URL parametresini ya da X-Goog-FieldMask HTTP veya gRPC başlığını kullanarak yanıt alanı maskesini her iki yönteme de 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.

Alan yolunu aşağıdaki gibi oluşturun ve belirtin:

  1. İhtiyacınız olan bilgileri içeren alanları bulun. Ayrıntılar için Alan Referansları bölümüne bakın.
  2. İhtiyacınız olan alanların yollarını belirleyin ve bunlar için alan maskeleri oluşturun: Ayrıntılar için Kullanmak istediğiniz alan maskesini belirleme bölümüne bakın.
  3. İhtiyacınız olan tüm alanların alan maskelerini birleştirin ve alan maskelerini virgülle ayırın. Örneğin, rota ayağı için distanceMeters ve her rota ayağı adımının süresini istemek için her ikisini de virgülle ayırarak 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 bilgi için aşağıdaki bölümleri inceleyin.

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 Compute Routes veya Compute Route Matrix referanslarına bakın. Alanları, referansta gösterildiği gibi camel case olarak belirtin. Örneğin, routePreference.

Bu referanslar, kullanılabilir alanları içerir. Ancak tam alan maskesi yolunu belirlemek için alanların hiyerarşisine bakmanız gerekir. Alanların hiyerarşisini alma hakkında ayrıntılı bilgi için Kullanmak istediğiniz alan maskesini belirleme bölümüne bakın.

  • Rota hesaplama alan maskesi
    • REST: Yanıtta döndürülecek Route nesnesinin alanlarını belirtir. Bu alanların önüne routes. eklenir (ör. routes.distanceMeters).
    • gRPC: Yanıtta döndürülecek Route nesnesinin alanlarını belirtir.
  • Compute Route Matrix alan maskeleri

Hangi alan maskelerinin kullanılacağını belirleme

Kullanmak istediğiniz alanları belirlemek ve bunlar için alan maskeleri oluşturmak üzere aşağıdaki adımları uygulayabilirsiniz:

  1. * alan maskesini kullanarak tüm alanları isteyin.
  2. İstediğiniz alanlar için yanıttaki alanların hiyerarşisine bakın.
  3. Önceki adımda gösterilen alanların hiyerarşisini kullanarak alan maskelerinizi oluşturun. Bu biçimi kullanın:

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

Örneğin, bir rotadan gelen 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ı (önceki örnekteki son distanceMeters) döndürmek istiyorsanız alan maskeniz aşağıdaki gibi olur:

routes.legs.distanceMeters

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

routes.legs.steps.distanceMeters

Yukarıdaki sonuçla her ikisini de döndürmek istiyorsanız alan maskeniz aşağıdaki gibi olur:

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

Örnek alan maskesi yolları

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 yer almaktadır.

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

İlk örnekte, bir rota hesaplamak için computeRoutes yöntemine yönelik bir REST çağrısı kullanırsınız. Bu örnekte, yanıttaki rota distanceMeters ve duration alanlarını döndürmek için üstbilgide alan maskeleri belirtirsiniz. Alan adının önüne routes eklemeyi unutmayın.

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

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

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

X-Goog-FieldMask: originIndex,destinationIndex,duration

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

Rota hesaplamak için kullanılan gRPC computeRoutes yönteminde, yanıttaki rota distanceMeters, duration ve kodlanmış çoklu çizgi alanlarını döndürmek 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"
)

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

Rota matrisini hesaplamak için kullanılan gRPC computeRouteMatrix yönteminde, her başlangıç ve hedef kombinasyonu için originIndex, destinationIndex ve duration değerlerinin döndürüleceğini belirtmek üzere yanıt alanı maskesini içeren bir değişken ayarlayın. Ardından bu değişkeni isteğe iletebilirsiniz:

const (
  fieldMask = "originIndex,destinationIndex,duration"
)

Alan yoluyla ilgili dikkat edilmesi gereken noktalar

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

  • İşleme sürelerini kısaltarak sonuçlarınızın daha düşük gecikmeyle döndürülmesini sağlar.
  • 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 performans düşüşü yaşayabilirsiniz.
  • Daha küçük bir yanıt boyutu sağlar. Bu da daha yüksek ağ aktarım hızı anlamına gelir.
  • Gereksiz veri istememenizi sağlar. Bu sayede gereksiz işlem süresinden ve faturalandırılan ücretlerden kaçınabilirsiniz.

Alan maskesi oluşturma hakkında daha fazla bilgi için field_mask.proto sayfasına bakın.