Referans noktası optimizasyonu,
ComputeRoutes
.
Kullanıcının rotasındaki ara noktaların sırasını optimize eder.
mümkün olan en verimli rotayı
kullanmalarını sağlamak. ComputeRoutes
Yol noktası optimizasyonunun uygulanması aşağıdaki seyahat modlarını destekler:
- Araba
- Motorlu iki tekerlekli araç
- bisiklet
- Yaya
Referans noktası optimizasyonunu neden kullanmalısınız?
Kullanıcılara bir hedefe giden yolda belirli ara noktalarda kılavuzluk eden bir uygulama geliştirirken bir varış noktası varsa, seyahat eden kişinin bağlantı noktasındaki ara noktaları kat etmesi en ideal sıralamayı oluşturur. Bu, seyahat eden kişinin teslimat noktasındaki her ara noktaya varmasını ve süre tahminidir.
İşleyiş şekli
ComputeRoutes
, varsayılan olarak rotayı aşağıdaki sırayla referans noktaları aracılığıyla hesaplar:
yalnızca bu metinlerde yer alıyor. Optimizasyon için ComputeRoutes
alabilirsiniz
ara noktaları daha verimli bir sıraya sokarak rotayı çizin.
optimizeWaypointOrder
alanı, istek gövdesinde true
olarak ayarlanır.
Not: Ara nokta optimizasyonu hesaplamasında öncelikle seyahat süresi, Ancak bu özellik, mesafe gibi diğer faktörleri de dikkate alır. ve dönüş sayısı.
Yeniden sıralanan ara noktaları alma
Yeniden sıralanmış ara noktalar içeren bir rota almak için boole alanını ayarlayın
optimizeWaypointOrder
to true
,
ComputeRoutes
. Ayrıca, optimizedIntermediateWaypointIndex
alanını da dahil et
kullanabilirsiniz. Yanıt gövdesi,
optimizedIntermediateWaypointIndex
alanlarını doldurun.
Not: optimizedIntermediateWaypointIndex
alanı sıfır temelli değerini döndürür
değerler.
Örnek istek
Aşağıdaki örnek istek, Stanford yakınındaki bir rotayı belirtiyor Üniversite kampüsü. Güzergah ara noktaları, isteği gönderin. İstek, iki ara hedef içeren bir kaynak ve bir hedef içeriyor ara hedefler.
POST /v1alpha:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Server-Timeout: 10
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
"origin":{
"location":{
"latLng":{
"latitude": 37.418956,
"longitude": -122.160815
}
}
},
"intermediates": [
{
"location":{
"latLng":{
"latitude": 37.4176423,
"longitude":-122.1102246
}
}
},
{
"location":{
"latLng":{
"latitude": 37.407689,
"longitude": -122.1360597
}
}
}
],
"destination":{
"location":{
"latLng":{
"latitude": 37.4032137,
"longitude": -122.0349119
}
}
},
"travelMode": "DRIVE",
"optimizeWaypointOrder": true,
"routingPreference": "TRAFFIC_AWARE"}
Örnek yanıt
Yeniden sıralanan ara ara nokta dizinlerini
Rota nesnesindeki optimizedIntermediateWaypointIndex
alan
yanıt gövdesi. Kodlanmış
çoklu çizgi
ile aynıdır
Directions API ve
ComputeRoutes.
routes {
distance_meters: 17647
duration {
seconds: 1866
}
polyline {
encoded_polyline: "wkkcFvorhVU{@Ec@C}CG}@Mm@[}@i@y@[[g@_@Tk@BSjCgGfF|D\\Pv@Lj@@XaCTeC\\aCTs@`ByD`@k@h@e@x@Yh@GtADhBF|@G`AWpAs@lAsAdA{A`BmDr@cBmUqQoS}OyGmFiBsAgEwD}CaCU_@Og@@e@Hy@nGkO~@sBr@cBlDqIlByEp@}AjIfGnBbBHLLd@^p@~ErDfNrKrA~@DIhEeBTQ~AqDlE{KjBgE|FnEh@aAi@`A}FoE~AmD`A}BcAm@mHwFwD}CkLwIsDqCgF_EG[GKnCsDrA_BrC_CnCoBpEkD`EyClCsBcBeBIAkGkH]k@eJmKQKsAuA_@g@wCoDGQmEmFmIqROKaDuHvBkBxAgANCRH^f@v@dBHDD?`AUiBqEhBpEaATMCQYm@wAY]SIOByAfAwBjB_ByDaAwBiCeIA[c@aBqEuNOm@IQbA{c@p@aZFmCTuBLg@Tc@BUAKxOeV~Vy_@nBoDv@_BvAcDzA_EdG{RdC{HtIsY|B{Hx@mDbAuFdBsMbKsv@TaBf@}AdF{Sn@_DJq@Lo@aE`@]GUQmAmAQk@@g@RK`Ce@d@UDEPc@f@cCrAyGJs@X{AbIem@bA{JD_AIaAMg@o@{A_Ad@y@NaCLCsCK_FGI"
}
optimizedIntermediateWaypointIndex: 1
optimizedIntermediateWaypointIndex: 0
}
Bu örnekte, ara noktaları optimize etmenin orijinallerini tersine çevirdiğine dikkat edin. sipariş.
Önerilen uygulamalar
Optimize edilmiş ara noktalara sahip bir isteğin işlenmesi, basit bir yönlendirmeye göre daha uzun sürer
isteği gönderin. Bu nedenle, yöntem çağrısında daha yüksek bir zaman aşımı ayarlamanızı öneririz.
X-Server-Timeout
istek başlığı için en az 10 olacak şekilde bir değer ayarlayarak
saniye. Zaman aşımı hataları almaya devam ederseniz bir saniye daha ekleyebilirsiniz
yeniden deneyin.
Kullanım sınırlamaları
Referans noktası optimizasyonunu kullanmak için aşağıdaki kullanım sınırlamalarına koşullar:
Web sunucunuzdaki ara ara noktalar için en fazla kullanım sınırı belirleyebilirsiniz rota:
- Yalnızca enlem ve boylam koordinatlarının kullanıldığı 98'e kadar ara nokta.
- Yer kimliklerini kullanarak herhangi bir ara nokta belirtirseniz en fazla 25 ara nokta.
Tüm ara noktalarınız duraklatma türünde olmalıdır. Hiçbir ara noktanız aracılığıyla türünde olabilir.
Alana
routes.optimizedIntermediateWaypointIndex
eklemelisiniz seçin.İsteğinizde 25 veya daha fazla ara nokta varsa aşağıdaki koşullara uymanız gerekir:
Tüm ara noktalar arasındaki toplam düz çizgi mesafesi şu şekilde olmalıdır: 1.000 km'den az olmalıdır. Bu mesafe, hem başlangıç noktası hem de seçeceğiz.
Ulaşım şekli DRIVE olmalıdır.