Avrupa Ekonomik Alanı (AEA) geliştiricileri

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 veriler istememenizi de sağlar. Bu da yanıt gecikmesini azaltır ve sisteminizin ihtiyaç duymadığı bilgilerin döndürülmesini önler.

İhtiyacınız olan alanların listesini yanıt alan maskesinde belirtirsiniz. Ardından, URL parametresi $fields veya fields ya da HTTP veya gRPC başlığı X-Goog-FieldMask'yı kullanarak yanıt alan maskesini 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, virgülle ayrılmış bir yol listesidir. Buradaki her yol, yanıt mesajındaki benzersiz bir alanı belirtir. Yol, en üst düzey yanıt mesajından başlar ve belirtilen alana nokta ile ayrılmış bir yol kullanır.

Aşağıdaki gibi bir alan yolu 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 bu alanlar için alan maskeleri oluşturun: Ayrıntılar için Hangi alan maskesini kullanmak istediğinizi belirleme başlıklı makaleyi inceleyin.
  3. İhtiyacınız olan tüm alanların alan maskelerini virgülle ayırarak birleştirin. Ö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 ayrıntı için aşağıdaki bölümlere bakın.

Alan Referansları

Alan maskeleri aracılığıyla yanıtta isteyebileceğiniz alanları görmek için aşağıdaki listede bağlantısı verilen Rotalar API'si Rotaları Hesaplama veya Rota Matrisi Hesaplama referanslarına bakın. Alanları, referansta gösterildiği gibi camel case olarak belirtin. Örneğin, routePreference.

Bu referanslar, kullanılabilen 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 başlıklı makaleyi inceleyin.

  • Compute route field mask
    • REST: Yanıtta döndürülecek Route nesnesinin alanlarını belirtir. routes. ile öneklenir (ör. routes.distanceMeters).
    • gRPC: Yanıtta döndürülecek Route nesnesinin alanlarını belirtir.
  • Compute Route Matrix alan maskeleri
    • REST: Döndürülecek Response body (Yanıt gövdesi) alanlarını belirtir.
    • gRPC: Yanıtta döndürülecek RouteMatrixElement nesnesinin alanlarını belirtir.

Hangi alan maskelerinin kullanılacağını belirleme

Hangi alanları kullanmak istediğinizi belirlemek ve bu alanlar için alan maskelerini 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. Aşağıdaki biçimi kullanarak önceki adımda gösterilen alanların hiyerarşisini kullanarak alan maskelerinizi oluşturun:

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

Örneğin, bir rotadan alınan şu kısmi yanıtta:

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

Yalnızca rota ayağı için distanceMeters alanını (yani ö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ı döndürmek istiyorsanız (yani önceki örnekteki steps altında distanceMeters), alan maskeniz aşağıdaki gibi olur:

routes.legs.steps.distanceMeters

Yukarıdaki sonuçla birlikte 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 verilmektedir.

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

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

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

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

Bir rota matrisi hesaplamak için kullanılan REST computeRouteMatrix yönteminde, başlıkta her başlangıç ve hedef kombinasyonu için originIndex, destinationIndex ve duration değerlerinin döndürülmesini 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. Daha sonra bu değişkeni isteğe iletebilirsiniz.

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

Alan yoluyla ilgili dikkat edilmesi gereken noktalar

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

  • İşleme sürelerini kısaltır. Böylece sonuçlarınız daha düşük gecikmeyle döndürülür.
  • Kararlı gecikme performansı sağlar. Tüm alanları veya üst düzeydeki tüm alanları seçerseniz yeni alanlar eklendiğinde ve yanıtınıza otomatik olarak dahil edildiğinde performans düşüşü yaşayabilirsiniz.
  • Daha küçük bir yanıt boyutuyla sonuçlanır. Bu da daha yüksek ağ işleme hızı anlamına gelir.
  • Gereksiz veri istememenizi sağlar. Bu sayede gereksiz işlem süresi ve faturalandırılan ücretler önlenir.

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