Döndürülecek bilgileri seçin
Rota veya rota matrisini hesaplamak için bir yöntem çağırdığınızda ilgili alanları sizin için uygun olacak şekilde listeleyerek, geri dönelim. 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. Ardından
URL parametresini $fields
veya
fields
veya HTTP ya da gRPC başlığını X-Goog-FieldMask
kullanarak.
Alan maskesi kullanmak, bir alan adına sahip Bu da gereksiz işlem süresi ve faturalandırılan ücretlerin önlenmesine yardımcı olur.
URL parametreleri hakkında daha fazla bilgi için bkz. Sistem Parametreleri.
Yanıt alanı maskesi tanımlama
Yanıt alanı maskesi, yolların virgülle ayrılmış bir listesidir; burada her path değeri, yanıt mesajında benzersiz bir alan belirtir. Yol, üst düzey yanıt mesajından başlar ve bir noktayla ayrılmış yolu gösterir.
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, mevcut 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: Yanıt gövdesi geri dönüyor.
- gRPC: RouteMatrixElement nesnesini tanımlayın.
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.- Alanların hiyerarşisine bakın istediğiniz alanları seçin.
Ö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ı döndürmek istiyorsanız; yani önceki örnekteki son distanceMeters
, 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 isterseniz; yani önceki örnekte steps
altındaki distanceMeters
için 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,
Hesaplama yöntemi: computeRoutes
yol gösterir. 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ı
REST computeRouteMatrix
için
rota matrisini hesaplamak için kullanılan yöntem, başlıkta, değer
Her kaynak kombinasyonu için originIndex
, destinationIndex
ve duration
ve hedef:
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 aşağıdaki alanları doldurmanız gerekir:
- İşleme sürelerini kısaltarak sonuçlarınız daha düşük bir gecikmeyle döndürülür.
- Sabit gecikme performansı sağlar. Şu durumda: tüm alanları seçebilir veya en üst düzeydeki tüm alanları seçerseniz yeni alanlar eklendiğinde performansta düşüş yaşanır ve ardından yanıtınıza otomatik olarak eklenir.
- 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.
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 bkz. Rota planlama (Android) veya Rota planlayın (iOS).
Rota jetonu örneği
Tek bir kaynak ve tek hedef için örnek bir cURL isteği gövdesi rota ile birlikte rota jetonu istemek için alan maskeleri kullanan rota süre, mesafe ve rota çoklu çizgisi:
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ı.