Döndürülecek bilgileri seçin

Bir rota hesaplamak veya rota matrisi hesaplamak için bir yöntem çağırdığınızda, yanıtta döndürülmesini istediğiniz alanları belirterek istediğiniz bilgileri belirtmeniz gerekir. Döndürülen alanların varsayılan bir listesi yoktur. Bu listeyi çıkarırsanız yöntemler hata döndürür.

Alan listesini, bir yanıt alanı maskesi oluşturarak belirtirsiniz. Daha sonra yanıt alanı maskesini $fields veya fields URL parametresini ya da X-Goog-FieldMask HTTP veya gRPC başlığını kullanarak iki yöntemden birine geçirirsiniz.

Alan maskeleme, gereksiz veri isteğinde bulunmadığınızdan emin olmak için iyi bir tasarım uygulamasıdır. Böylece gereksiz işleme süresini ve faturalandırılmış ücretleri önler.

URL parametreleri hakkında daha fazla bilgi için Sistem Parametreleri bölümüne bakın.

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şturun:

topLevelField[.secondLevelField][.thirdLevelField][...]
  • İşlem rota alanı maskesi
    • REST: Döndürülecek yanıttaki Rota nesnesinin alanlarını, routes. ön ekiyle belirtir (örneğin, routes.distanceMeters).
    • gRPC: Döndürülecek yanıttaki Rota nesnesinin alanlarını belirtir.
  • İşlem rota matrisi alan maskeleri

Alan maskelerinin nasıl oluşturulacağı hakkında daha fazla bilgi için field_mask.proto dosyasını inceleyin.

Hangi alan maskelerinin kullanılacağını belirleme

Kullanmak istediğiniz alan maskelerini nasıl belirleyeceğiniz aşağıda açıklanmıştır:

  1. * alan maskesi kullanarak tüm alanları isteyin.
  2. Yanıttaki alanların hiyerarşisine bakın ve hangi alanları istediğinizi belirleyin.
  3. Alan hiyerarşisini kullanarak alan maskenizi oluşturun.

Örneğin, bir toplu taşıma rotasından gelen bu kısmi yanıt için:

 "routes": [
  {
    "legs": [
    {
      "distanceMeters": 12886,
    }
...
]}]

Yalnızca distanceMeters alanını döndürmek istiyorsanız alan maskeniz şöyle olur:

routes.legs.distanceMeters

Başka bir örnek: Yanıtta legs altındaki her şeyi döndürmek için alan maskeniz şöyle olur:

routes.legs

Alan yolu belirtin

Bu bölümde, bir yanıt alanı maskesinin parçası olarak alan yolunun nasıl belirtileceğine dair örnekler yer almaktadır.

computeRoutes numaralı telefona REST araması

İlk örnekte, rota hesaplamak için computeRoutes yöntemine bir REST çağrısı kullanıyorsunuz. Bu örnekte, başlıkta, yanıtta Route.distanceMeters ve Route.duration alanlarını döndürecek alan maskelerini belirtirsiniz. Alan adının önüne routes eklemeyi unutmayın.

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

computeRouteMatrix numaralı telefona REST araması

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

-H 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 geçirebilirsiniz.

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

Alan yoluyla ilgili dikkat edilmesi gereken noktalar

Yanıtta yalnızca gerekli gördüğünüz alanları ekleyin. Yalnızca ihtiyacınız olan alanları geri vererek:

  • İşleme sürelerini kısaltır, böylece sonuçlarınızın daha düşük bir gecikmeyle döndürülmesini sağlar.
  • API gelecekte daha fazla yanıt alanı eklerse ve bu yeni alanlar ekstra hesaplama süresi gerektirirse gecikme performansının istikrarlı olmasını sağlar. Tüm alanları seçerseniz veya en üst düzeyde tüm alanları seçerseniz yanıtınıza tüm yeni alanlar otomatik olarak eklendiğinde performansta düşüş yaşayabilirsiniz.
  • Daha küçük bir yanıt boyutuyla sonuçlanır ve bu, daha yüksek ağ işleme hızı anlamına gelir.
  • Gereksiz veri talebinde bulunmamanızı sağlar, bu da gereksiz işlem süresini ve faturalandırılmış ücretleri önlemenize yardımcı olur.

Rota jetonu isteme

Routes API'nin oluşturulan rotalar için rota jetonları döndürmesini istemek amacıyla rota jetonu döndürmeyle ilgili koşulları uygulayın ve jetonu istemek için routes.route_token alanı maskesini kullanın:

  1. travel_mode öğesini DRIVING olarak ayarlayın.
  2. routing_preference öğesini TRAFFIC_AWARE veya TRAFFIC_AWARE_OPTIMAL olarak ayarlayın.
  3. Rota ara noktalarınızdan hiçbirinin via ara nokta olmadığından emin olun.
  4. Rota jetonu alan maskesini belirtin:
    -H X-Goog-FieldMask: routes.route_token

Planlanan rotanızı Navigasyon SDK'sında kullanabilirsiniz. Diğer ayrıntılar için Rota planlama (Android) veya Rota planlama (iOS) sayfalarına göz atın.

Rota jetonu örneği

Aşağıda, rota jetonu istemek için alan maskeleriyle rota süresi, mesafe ve rota çoklu çizgisini kullanan tek kaynaklı ve tek hedefli bir rota için cURL istek gövdesine dair bir örnek verilmiştir:

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.route_token,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
'https://routes.googleapis.com/directions/v2:computeRoutes'

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