Yönlendirme özetini hesaplama
Yanıttaki her bir yere olan seyahat süresini ve mesafeyi hesaplamak için Metin Arama (Yeni) veya Yakındaki Arama (Yeni)'yı kullanmak istiyorsanız:
-
Yönlendirme kaynağının enlem ve boylam koordinatlarını belirtmek için isteğe
routingParameters.origin
parametresini iletin. Bu parametre, yanıttaki her bir yere olan mesafeyi ve süreyi hesaplamak için gereklidir. -
Yanıtın
routingSummaries
dizisini içermesi için alan maskesineroutingSummaries
ekleyin. Bu dizi, yönlendirme kaynağından yanıttaki her yere kadar olan süreyi ve mesafeyi içerir.
Metin aramayı kullanma (Yeni)
Aşağıdaki istekte, Metin Arama (Yeni) yanıtındaki her bir yere olan seyahat süresini ve mesafeyi hesaplarsınız:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 } } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \ 'https://places.googleapis.com/v1/places:searchText'
Yanıt iki JSON dizisi içerir: places
dizisi eşleşen yerleri, routingSummaries
dizisi ise her bir yere gitme süresini ve mesafeyi içerir:
{ "places": [ { object (Place) } ] "routingSummaries": [ { object (RoutingSummary) } }
routingSummaries
dizisindeki her öğe, places
dizisindeki konumla aynı dizi konumundadır. Yani routingSummaries[0]
'teki öğe, places[0]
'teki yere karşılık gelir.
routingSummaries
dizisinin uzunluğu, places
dizisinin uzunluğuyla aynıdır. Bir yer için routingSummary
mevcut değilse dizi girişi boş olur.
Bu örnekte, rota başlangıcından her yere olan süre ve mesafe hesaplandığından yanıttaki routingSummaries.legs
alanında, rota başlangıcından yere olan duration
ve distanceMeters
değerlerini içeren tek bir Leg
nesnesi bulunur.
{ "places": [ { "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia", "displayName": { "text": "Gözleme King Sydney", "languageCode": "en" } }, { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, … ] "routingSummaries": [ { "legs": [ { "duration": "597s", "distanceMeters": 2607 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0" }, { "legs": [ { "duration": "562s", "distanceMeters": 2345 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0" }, … ] }
Bu örnekte, yönlendirme başlangıcından sonuçlardaki ilk yere kadar olan sürenin ve mesafenin 597 saniye ve 2.607 metre olduğunu görebilirsiniz.
Yakında Arama'yı kullanma
Bu örnekte, Yakındaki Arama yanıtındaki her bir yere olan seyahat süresini ve mesafeyi hesaplarsınız. Bu örnekte, Avustralya'nın Sidney kentindeki restoranlar aranır ve konum kısıtlaması ile rota başlangıcı aynı enlem ve boylam koordinatına ayarlanır:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": -33.8688, "longitude": 151.1957362}, "radius": 500.0 } }, "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \ -H "X-Goog-FieldMask: places.displayName,routingSummaries" \ https://places.googleapis.com/v1/places:searchNearby
locationRestriction
için ve yönlendirme kaynağı için aynı koordinatları kullanmanız gerekmez. Örneğin, arama sonuçlarını bu daireye yönlendirmek için locationRestriction
'yi Sydney'in merkez noktasına ayarlayabilirsiniz. Ancak daha sonra rota başlangıcını evinizin koordinatlarına, yani arama çemberi içindeki farklı bir konuma ayarlarsınız. Ardından istek, arama sonuçlarını daireye göre yönlendirir ve rota özetlerini evinizin konumuna göre hesaplar.
Seyahat seçeneklerini belirtin
Süre ve mesafe hesaplamaları varsayılan olarak bir araç için yapılır. Ancak aramada araç türünü ve diğer seçenekleri kontrol edebilirsiniz.
-
Taşıma modunu
DRIVE
,BICYCLE
,WALK
veyaTWO_WHEELER
olarak ayarlamak içinroutingParameters.travelMode
parametresini kullanın. Bu seçenekler hakkında daha fazla bilgi için Rotalar için kullanılabilen araç türleri başlıklı makaleyi inceleyin. -
Yönlendirme tercihi seçeneğini
TRAFFIC_UNAWARE
(varsayılan),TRAFFIC_AWARE
veyaTRAFFIC_AWARE_OPTIMAL
olarak ayarlamak içinroutingParameters.routingPreference
mülkünü kullanın. Her seçeneğin veri kalitesi ve gecikmesi farklıdır. Daha fazla bilgi için Trafik verilerinin nasıl ve ne zaman dahil edileceğini belirtme başlıklı makaleyi inceleyin.Google Haritalar bağlantıyı açtığında trafik seçeneklerini gösterdiğinden
routingParameters.routingPreference
mülkü, Önizleme (GA öncesi)directionsUri
alanındaki talimatları etkiler. -
avoidTolls
,avoidHighways
,avoidFerries
veavoidIndoor
için belirtmek üzereroutingParameters.routeModifiers
özelliğini kullanın. Bu seçenekler hakkında daha fazla bilgi için Kaçınılacak rota özelliklerini belirtme başlıklı makaleyi inceleyin.
Aşağıdaki örnekte, ulaşım şeklini DRIVE
olarak belirtir ve otoyollardan kaçınılmasını istersiniz:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 }, "travelMode":"DRIVE", "routeModifiers": { "avoidHighways": true } } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \ 'https://places.googleapis.com/v1/places:searchText'