रूटिंग की खास जानकारी का हिसाब लगाना
टेक्स्ट सर्च (नया) या आस-पास की जगहें खोजने की सुविधा (नई) का इस्तेमाल करके, जवाब में हर जगह तक पहुंचने में लगने वाले समय और दूरी का हिसाब लगाने के लिए:
-
रूटिंग ऑरिजिन के अक्षांश और देशांतर निर्देशांक बताने के लिए,
setOrigin()
का इस्तेमाल करके, अनुरोध मेंRoutingParameters
पैरामीटर पास करें. जवाब में, हर जगह के लिए समय और दूरी का हिसाब लगाने के लिए, यह पैरामीटर ज़रूरी है. -
अनुरोध ऑब्जेक्ट बनाते समय,
.setRoutingSummariesIncluded(true)
जोड़ें.
टेक्स्ट से खोजने की सुविधा का इस्तेमाल करना (नया)
नीचे दिए गए अनुरोध में, टेक्स्ट सर्च (नया) के जवाब में, हर जगह के लिए यात्रा में लगने वाले समय और दूरी का हिसाब लगाया जाता है:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define the routing parameters object and pass the routing origin. RoutingParameters routingParameters = RoutingParameters.builder() .setOrigin(toLatLng("-33.8688, 151.1957362")) .build(); // Use the builder to create a SearchByTextRequest object and pass the routing parameters. // Set setRoutingSummariesIncluded to true. final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food in Sydney, Australia", placeFields) .setMaxResultCount(10) .setRoutingParameters(routingParameters) .setRoutingSummariesIncluded(true) .build(); // Call PlacesClient.searchByText() to perform the search. // Define a response handler to process the returned Lists of Place objects, RoutingSummary objects, and Leg objects. placesClient.searchByText(searchByTextRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); List<RoutingSummary> routingSummaries = response.getRoutingSummaries(); List<Leg> legs = routingSummaries.get(0).getLegs(); Duration duration = legs.get(0).getDuration(); });
SearchByTextResponse
क्लास, खोज अनुरोध के जवाब को दिखाती है.
रूटिंग की खास जानकारी वाली सूची देखने के लिए, SearchByTextResponse.getRoutingSummaries()
को कॉल किया जा सकता है.
SearchByTextResponse
ऑब्जेक्ट में ये भी शामिल हैं:
Place
ऑब्जेक्ट की सूची, जो मिलती-जुलती सभी जगहें दिखाती है. इसमें, मिलती-जुलती हर जगह के लिए एकPlace
ऑब्जेक्ट है.- हर
Place
ऑब्जेक्ट में सिर्फ़ वे फ़ील्ड होते हैं जो अनुरोध में दी गई फ़ील्ड सूची में बताए गए हैं.
आस-पास की जगहों की जानकारी वाली सुविधा का इस्तेमाल करना
इस उदाहरण में, आपने आस-पास खोज के नतीजे दिखाने वाली सुविधा में हर जगह की यात्रा में लगने वाला समय और दूरी को कैलकुलेट किया है. इस उदाहरण में, ऑस्ट्रेलिया के सिडनी में रेस्टोरेंट खोजे जा रहे हैं. साथ ही, जगह की पाबंदी और रूटिंग की शुरुआत को एक ही अक्षांश और देशांतर निर्देशांक पर सेट किया गया है:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define the search area as a 500 meter diameter circle in Sydney, Australia. LatLng center = new LatLng(-33.8688, 151.1957362); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 500); // Define the routing parameters object and pass the routing origin. RoutingParameters routingParameters = RoutingParameters.builder() .setOrigin(toLatLng("-33.8688, 151.1957362")) .build(); // Use the builder to create a SearchNearbyRequest object and pass the routing parameters. // Set setRoutingSummariesIncluded to true. final SearchNearbyRequest searchNearbyRequest = SearchNearbyRequest.builder(/* location restriction = */ circle, placeFields) .setIncludedTypes(includedTypes) .setMaxResultCount(10) .setRoutingParameters(routingParameters) .setRoutingSummariesIncluded(true) .build(); // Call PlacesClient.searchNearby() to perform the search. // Define a response handler to process the returned Lists of Place objects, RoutingSummary objects, and Leg objects. placesClient.searchNearby(searchNearbyRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); List<RoutingSummary> routingSummaries = response.getRoutingSummaries(); List<Leg> legs = routingSummaries.get(0).getLegs(); Duration duration = legs.get(0).getDuration(); });
SearchNearbyResponse
क्लास, खोज अनुरोध के जवाब को दिखाती है.
रूटिंग की खास जानकारी वाली सूची देखने के लिए, SearchNearbyResponse.getRoutingSummaries()
को कॉल किया जा सकता है.
SearchNearbyResponse
ऑब्जेक्ट में ये भी शामिल होते हैं:
Place
ऑब्जेक्ट की सूची, जो मैच होने वाली सभी जगहों को दिखाती है. इसमें हर मैच होने वाली जगह के लिए एकPlace
ऑब्जेक्ट होता है.- हर
Place
ऑब्जेक्ट में सिर्फ़ वे फ़ील्ड होते हैं जिन्हें अनुरोध में भेजी गई फ़ील्ड सूची के हिसाब से तय किया गया है.
आपको जगह की पाबंदी और रूटिंग ऑरिजिन के लिए, एक ही निर्देशांक का इस्तेमाल करने की ज़रूरत नहीं है. उदाहरण के लिए, आपने सिडनी के सेंटर पॉइंट पर जगह की पाबंदी सेट की है, ताकि खोज के नतीजों को उस सर्कल तक सीमित किया जा सके. हालांकि, इसके बाद आपने अपने घर के निर्देशांक पर, राइटिंग ऑरिजिन सेट किया. इसका मतलब है कि आपने खोज सर्कल में किसी दूसरी जगह पर राइटिंग ऑरिजिन सेट किया. इसके बाद अनुरोध, खोज के नतीजों को सर्कल में शामिल करता है और आपके घर की जगह के आधार पर रूटिंग की खास जानकारी को कैलकुलेट करता है.
यात्रा के विकल्पों की जानकारी देना
डिफ़ॉल्ट रूप से, यात्रा में लगने वाले समय और दूरी का हिसाब कार के लिए लगाया जाता है. हालांकि, खोज के नतीजों में वाहन के टाइप के साथ-साथ अन्य विकल्पों को भी कंट्रोल किया जा सकता है.
-
DRIVE
,BICYCLE
,WALK
याTWO_WHEELER
पर परिवहन का साधन सेट करने के लिएroutingParameters.setTravelMode()
का इस्तेमाल करें. इन विकल्पों के बारे में ज़्यादा जानकारी के लिए, रास्तों के लिए उपलब्ध वाहन के टाइप देखें. -
रूटिंग की प्राथमिकता के विकल्प को
TRAFFIC_UNAWARE
(डिफ़ॉल्ट),TRAFFIC_AWARE
याTRAFFIC_AWARE_OPTIMAL
पर सेट करने के लिए,routingParameters.setRoutingPreference()
का इस्तेमाल करें. हर विकल्प में डेटा क्वालिटी और रिस्पॉन्स में लगने वाले समय के अलग-अलग लेवल होते हैं. ज़्यादा जानकारी के लिए, यह तय करें कि ट्रैफ़िक का डेटा कैसे और कैसे शामिल करना है. -
avoidTolls
,avoidHighways
,avoidFerries
, औरavoidIndoor
के लिए,routingParameters.setRouteModifiers()
का इस्तेमाल करें. इन विकल्पों के बारे में ज़्यादा जानकारी के लिए, रास्ते की उन सुविधाओं के बारे में बताएं जिनसे बचना है लेख पढ़ें.
अगले उदाहरण में, यात्रा के मोड के तौर पर DRIVE
और राजमार्गों से बचने के लिए, यह जानकारी दी गई है:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define the routing modifiers object. RouteModifiers routeModifiers = RouteModifiers.builder() .setAvoidHighways(true) .build(); // Define the routing parameters object and pass the routing origin. RoutingParameters routingParameters = RoutingParameters.builder() .setOrigin(toLatLng("-33.8688, 151.1957362")) .setTravelMode(DRIVE) .setRouteModifiers(routeModifiers) .build(); // Use the builder to create a SearchByTextRequest object and pass the routing parameters. // Set setRoutingSummariesIncluded to true. final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food in Sydney, Australia", placeFields) .setMaxResultCount(10) .setRoutingParameters(routingParameters) .setRoutingSummariesIncluded(true) .build(); // Call PlacesClient.searchByText() to perform the search. // Define a response handler to process the returned Lists of Place objects, RoutingSummary objects, and Leg objects. placesClient.searchByText(searchByTextRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); List<RoutingSummary> routingSummaries = result.getRoutingSummaries(); List<Leg> legs = routingSummaries.get(0).getLegs(); Duration duration = legs.get(0).getDuration(); });