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:
- 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.
- İ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.
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
API isteğinizle birlikte alan maskesini gönderin. Örneğin, bir cURL isteğinde alan maskesini
-H
veX-Goog-FieldMask
ile belirtirsiniz:-H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
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
- İşlem rotası matrisi alan maskeleri
- REST: Döndürülecek Yanıt gövdesi alanlarını belirtir.
- gRPC: Döndürülecek yanıttaki RouteMatrixElement nesnesinin alanlarını belirtir.
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:
*
alan maskesini kullanarak tüm alanları isteyin.- İstediğiniz alanlar için yanıtta alanların hiyerarşisine bakın.
Ö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:
- Rota jetonu döndürmek için aşağıdaki parametreleri ayarlayın:
travelMode
değeriniDRIVE
olarak ayarlayın.routingPreference
öğesiniTRAFFIC_AWARE
veyaTRAFFIC_AWARE_OPTIMAL
olarak ayarlayın.
- Rota ara noktalarınızdan hiçbirinin
via
ara nokta olmadığından emin olun. - 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.