Döndürülecek bilgileri seçin

Rota veya rota matrisini hesaplamak için bir yöntem çağırdığınızda, yanıtta döndürülecek alanları listeleyerek istediğiniz bilgileri belirtmeniz gerekir. 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. Daha sonra, $fields veya fields URL parametresini ya da X-Goog-FieldMask HTTP veya gRPC başlığını kullanarak yanıt alanı maskesini iki yönteme de aktarabilirsiniz.

Saha maskesi kullanmak, gereksiz veri isteğinde bulunmadığınızdan emin olmak için iyi bir tasarım uygulamasıdır. Bu sayede, gereksiz işleme süresi ve faturalandırılan ücretler de ortadan kalkar.

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, yolların virgülle ayrılmış bir listesidir. Her yol, yanıt iletisinde benzersiz bir alanı belirtir. Yol, üst düzey yanıt mesajından başlar ve belirtilen alana noktayla ayrılmış bir yol kullanır.

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, kullanılabilir 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: Döndürülecek yanıtta, routes. ön ekiyle başlayan Route nesnesinin alanlarını belirtir (örneğin, routes.distanceMeters).
    • gRPC: Döndürülecek yanıttaki Route nesnesinin alanlarını belirtir.
  • İş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. İstediğiniz alanlar için 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 ayağı 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 ayağının her adımı için distanceMeters alanını döndürmek istiyorsanız, yani önceki örnekte steps altındaki distanceMeters alanını geri almak isterseniz 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 rotayı hesaplamak için computeRoutes yöntemine yapılan bir REST çağrısı kullanılmıştır. 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ı

Rota matrisini hesaplamak için kullanılan REST computeRouteMatrix yönteminde, her kaynak ve hedef kombinasyonu için originIndex, destinationIndex ve duration döndürülecek şekilde değeri belirtin:

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 ihtiyacınız olan alanları döndürmek için yanıtta yalnızca gerekli olan alanları ekleyin:

  • İşleme sürelerini kısaltarak sonuçlarınız daha düşük bir gecikmeyle döndürülür.
  • Sabit gecikme performansı sağlar. Tüm alanları seçer veya en ü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 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 sayfasına bakın.

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ın rota jetonunu Gezinme SDK'sında kullanabilirsiniz. Daha fazla bilgi için Rota planlama (Android) veya Rota planlama (iOS) konularına göz atın.

Rota jetonu örneği

Aşağıda, rota süresi, mesafe ve rota çoklu çizgisiyle birlikte rota jetonu istemek için alan maskelerinin kullanıldığı tek bir kaynak ve tek hedefli rota için örnek bir cURL istek gövdesi 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.routeToken,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
'https://routes.googleapis.com/directions/v2:computeRoutes'

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