आस-पास की खोज (नया) से जुड़ा कोई अनुरोध, सर्कल के तौर पर खोजे जाने वाले इलाके के इनपुट के तौर पर लेता है. इसे सर्कल के केंद्र बिंदु और मीटर में दायरे के अक्षांश और देशांतर निर्देशांक से तय किया जाता है. अनुरोध, मेल खाने वाली जगहों की सूची दिखाता है. हर जगह को तय किए गए खोज इलाके में, Place
ऑब्जेक्ट के ज़रिए दिखाया जाता है.
डिफ़ॉल्ट रूप से, जवाब में खोज वाली जगह के अंदर सभी तरह की जगहें शामिल होती हैं. जगह के टाइप की सूची देकर, जवाब को फ़िल्टर किया जा सकता है. इससे आपको जवाब में साफ़ तौर पर शामिल करने या उससे बाहर रखने का विकल्प मिलेगा. उदाहरण के लिए, रिस्पॉन्स में सिर्फ़ "रेस्टोरेंट", "बेकरी", और "कैफ़े" वाली जगहों को शामिल किया जा सकता है या "स्कूल" टाइप वाली सभी जगहों को बाहर रखा जा सकता है.
आस-पास की खोज (नए) अनुरोध
आस-पास खोजने की सुविधा (नया) के लिए PlacesClient.searchNearby
को कॉल करें और अनुरोध के पैरामीटर को तय करने वाला SearchNearbyRequest
ऑब्जेक्ट पास करें.
SearchNearbyRequest
ऑब्जेक्ट, अनुरोध के लिए सभी ज़रूरी और वैकल्पिक पैरामीटर तय करता है. ज़रूरी पैरामीटर में ये शामिल हैं:
Place
ऑब्जेक्ट में दिखाए जाने वाले फ़ील्ड की सूची. इसे फ़ील्ड मास्क भी कहा जाता है. अगर आपने फ़ील्ड सूची में कम से कम एक फ़ील्ड नहीं डाला है या फ़ील्ड की सूची को हटा दिया है, तो कॉल गड़बड़ी दिखाएगा.- खोजी गई जगह के लिए जगह की पाबंदी. इसे मीटर में, अक्षांश/देशांतर के जोड़े और खास दायरे की वैल्यू के तौर पर बताया जाता है.
आस-पास के खोज अनुरोध के इस उदाहरण से पता चलता है कि रिस्पॉन्स Place
ऑब्जेक्ट में, खोज के नतीजों में हर Place
ऑब्जेक्ट के लिए जगह के फ़ील्ड Place.Field.ID
और Place.Field.NAME
हैं. ऐसा करने पर, रिस्पॉन्स में "रेस्टोरेंट" और "कैफ़े" टाइप वाली जगहों को बाहर रखा जाता है, लेकिन "पिज़्ज़ा_रेस्टोरेंट" और "American_restaurant" जैसी जगहों को बाहर रखा जाता है.
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define the search area as a 1000 meter diameter circle in New York, NY. LatLng center = new LatLng(40.7580, -73.9855); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 1000); // Define a list of types to include. final List<String> includedTypes = Arrays.asList("restaurant", "cafe"); // Define a list of types to exclude. final List<String> excludedTypes = Arrays.asList("pizza_restaurant", "american_restaurant"); // Use the builder to create a SearchNearbyRequest object. final SearchNearbyRequest searchNearbyRequest = SearchNearbyRequest.builder(/* location restriction = */ circle, placeFields) .setIncludedTypes(includedTypes) .setExcludedTypes(excludedTypes) .setMaxResultCount(10) .build()); // Call placesClient.searchNearby() to perform the search. // Define a response handler to process the returned List of Place objects. placesClient.searchNearby(searchNearbyRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); });
आस-पास की खोज (नए) से मिले जवाब
SearchNearbyResponse
क्लास, खोज के अनुरोध से मिला रिस्पॉन्स दिखाती है. SearchNearbyResponse
ऑब्जेक्ट में ये शामिल हैं:
Place
ऑब्जेक्ट की सूची, जो मिलती-जुलती सभी जगहें दिखाती है. इसमें, मिलती-जुलती हर जगह के लिए एकPlace
ऑब्जेक्ट होता है.- हर
Place
ऑब्जेक्ट में, सिर्फ़ अनुरोध में पास की गई फ़ील्ड सूची से तय किए गए फ़ील्ड होते हैं.
उदाहरण के लिए, आपने अनुरोध में एक फ़ील्ड सूची को इस तरह परिभाषित किया है:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
इस फ़ील्ड सूची का मतलब है कि जवाब के हर Place
ऑब्जेक्ट में, सिर्फ़ जगह का आईडी और मेल खाने वाली हर जगह का नाम होता है. इसके बाद, हर Place
ऑब्जेक्ट में इन फ़ील्ड को ऐक्सेस करने के लिए, Place.getId()
और Place.getName()
तरीकों का इस्तेमाल किया जा सकता है.
Place
ऑब्जेक्ट में डेटा ऐक्सेस करने के और उदाहरणों के लिए, प्लेस ऑब्जेक्ट के डेटा फ़ील्ड ऐक्सेस करना देखें.
ज़रूरी पैरामीटर
खोज के लिए ज़रूरी पैरामीटर तय करने के लिए, SearchNearbyRequest
ऑब्जेक्ट का इस्तेमाल करें.
फ़ील्ड की सूची
जगह की जानकारी का अनुरोध करते समय, आपको फ़ील्ड मास्क के तौर पर जगह के लिए
Place
ऑब्जेक्ट में दिखाया जाने वाला डेटा बताना होगा. फ़ील्ड मास्क तय करने के लिए,Place.Field
सेSearchNearbyRequest
ऑब्जेक्ट में वैल्यू की कलेक्शन पास करें. फ़ील्ड मास्किंग, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि आप ग़ैर-ज़रूरी डेटा का अनुरोध न करें. इससे, प्रोसेसिंग में लगने वाले समय और बिलिंग शुल्क से बचने में मदद मिलती है.इनमें से एक या ज़्यादा फ़ील्ड चुनें:
ये फ़ील्ड आस-पास की खोज (बेसिक) SKU को ट्रिगर करते हैं:
Place.Field.ADDRESS_COMPONENTS
,Place.Field.BUSINESS_STATUS
,Place.Field.ADDRESS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.LAT_LNG
,Place.Field.PHOTO_METADATAS
,Place.Field.PLUS_CODE
,Place.Field.ID
,Place.Field.NAME
,Place.Field.TYPES
,Place.Field.UTC_OFFSET
,Place.Field.VIEWPORT
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
ये फ़ील्ड आस-पास की खोज (बेहतर) SKU को ट्रिगर करते हैं:
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.SECONDARY_OPENING_HOURS
,Place.Field.PHONE_NUMBER
,Place.Field.PRICE_LEVEL
,Place.Field.RATING
,Place.Field.OPENING_HOURS
,Place.Field.USER_RATINGS_TOTAL
,Place.Field.WEBSITE_URI
ये फ़ील्ड आस-पास की खोज (पसंदीदा) SKU को ट्रिगर करते हैं:
Place.Field.CURBSIDE_PICKUP
,Place.Field.DELIVERY
,Place.Field.DINE_IN
,Place.Field.EDITORIAL_SUMMARY
,Place.Field.RESERVABLE
,Place.Field.REVIEWS
,Place.Field.SERVES_BEER
,Place.Field.SERVES_BREAKFAST
,Place.Field.SERVES_BRUNCH
,Place.Field.SERVES_DINNER
,Place.Field.SERVES_LUNCH
,Place.Field.SERVES_VEGETARIAN_FOOD
,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
फ़ील्ड की सूची का पैरामीटर सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetPlaceFields()
तरीके को कॉल करें.इस उदाहरण में दो फ़ील्ड वैल्यू की सूची के बारे में बताया गया है. इससे पता चलता है कि अनुरोध करने पर मिले
Place
ऑब्जेक्ट में,Place.Field.ID
औरPlace.Field.NAME
फ़ील्ड शामिल हैं:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
जगह की जानकारी से जुड़ी पाबंदी
यह एक
LocationRestriction
ऑब्जेक्ट है. यह सर्कल के तौर पर, खोजे जाने वाले इलाके के बारे में बताता है. इस ऑब्जेक्ट को सेंटर पॉइंट और मीटर में रेडियस के आधार पर तय किया जाता है. रेडियस 0.0 से ज़्यादा और 50, 000.0 के बराबर या उसके बीच होना चाहिए. ध्यान रखें कि बहुत छोटा रेडियस बताने से रिस्पॉन्स के तौर परZERO_RESULTS
दिखेगा.जगह की जानकारी पर पाबंदी वाला पैरामीटर सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetLocationRestriction()
तरीके को कॉल करें.
ज़रूरी नहीं पैरामीटर
खोज के लिए वैकल्पिक पैरामीटर तय करने के लिए, SearchNearbyRequest
ऑब्जेक्ट का इस्तेमाल करें.
-
टाइप और मुख्य टाइप
इसकी मदद से, खोज के नतीजों को फ़िल्टर करने के लिए इस्तेमाल किए गए टेबल A के टाइप से एक सूची बनाई जा सकती है. टाइप पर लगी पाबंदी की हर कैटगरी में, ज़्यादा से ज़्यादा 50 तरह के कीवर्ड डाले जा सकते हैं.
किसी जगह से जुड़े टेबल A टाइप में से, सिर्फ़ एक एक प्राइमरी टाइप हो सकता है. उदाहरण के लिए, प्राइमरी टाइप
"mexican_restaurant"
या"steak_house"
हो सकता है. किसी जगह के प्राइमरी टाइप के हिसाब से नतीजों को फ़िल्टर करने के लिए,includedPrimaryTypes
औरexcludedPrimaryTypes
का इस्तेमाल करें.किसी जगह से जुड़े टेबल A टाइप से कई तरह की वैल्यू भी हो सकती हैं. उदाहरण के लिए, कोई रेस्टोरेंट इस तरह का हो सकता है:
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
. किसी जगह से जुड़े टाइप की सूची के नतीजों को फ़िल्टर करने के लिए,includedTypes
औरexcludedTypes
का इस्तेमाल करें.अगर कोई खोज कई तरह की पाबंदियों के साथ की गई है, तो सिर्फ़ वे जगहें दिखाई जाती हैं जो सभी पाबंदियों को पूरा करती हैं. उदाहरण के लिए, अगर
includedTypes = Arrays.asList("restaurant")
औरexcludedPrimaryTypes = Arrays.asList("steak_house")
की जानकारी दी जाती है, तो दिखाई गई जगहों से"restaurant"
मिलती-जुलती सेवाएं मिलती हैं. हालांकि, ये मुख्य तौर पर"steak_house"
के तौर पर काम नहीं करती हैं.includedTypes
औरexcludedTypes
का इस्तेमाल करने के उदाहरण के लिए, आस-पास खोजने की सुविधा (नए) के अनुरोध देखें.शामिल किए गए टाइप
खोजी जाने वाली टेबल A में दी गई जगहों के टाइप की सूची. अगर इस पैरामीटर को शामिल नहीं किया जाता है, तो सभी तरह की जगहों की जानकारी दिखाई जाती है.
शामिल किए गए टाइप पैरामीटर को सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetIncludedTypes()
तरीके को कॉल करें.बाहर रखे गए टाइप
टेबल A में दी गई जगहों के टाइप की सूची, जिसे खोज में शामिल नहीं करना है.
अगर अनुरोध में
includedTypes
(जैसे कि"school"
) औरexcludedTypes
(जैसे कि"primary_school"
) की जानकारी दी जाती है, तो जवाब में ऐसी जगहें शामिल होती हैं जिन्हें"school"
की कैटगरी में रखा गया है, लेकिन"primary_school"
की कैटगरी में नहीं. रिस्पॉन्स में ऐसी जगहें शामिल होती हैं जोincludedTypes
में से कम से कम एक औरexcludedTypes
में से कोई नहीं से मेल खाती हैं.अगर कोई टाइप एक-दूसरे से अलग होता है, जैसे कि
includedTypes
औरexcludedTypes
, दोनों में कोई टाइप दिख रहा है, तोINVALID_REQUEST
गड़बड़ी दिखती है.बाहर रखे गए टाइप का पैरामीटर सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetExcludedTypes()
तरीके को कॉल करें.शामिल किए गए मुख्य टाइप
किसी खोज में शामिल करने के लिए, टेबल A में दी गई मुख्य जगहों के टाइप की सूची.
शामिल किए गए मुख्य टाइप का पैरामीटर सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetIncludedPrimaryTypes()
तरीके को कॉल करें.हटाए गए मुख्य टाइप
किसी खोज से बाहर रखने के लिए, टेबल A में दी गई मुख्य जगहों के टाइप की सूची.
अगर कोई मुख्य टाइप एक-दूसरे से अलग है, जैसे कि
includedPrimaryTypes
औरexcludedPrimaryTypes
, दोनों में कोई टाइप दिख रहा है, तोINVALID_ARGUMENT
गड़बड़ी दिखती है.बाहर रखे गए मुख्य टाइप का पैरामीटर सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetExcludedPrimaryTypes()
तरीके को कॉल करें. -
नतीजों की ज़्यादा से ज़्यादा संख्या
इससे पता चलता है कि जगह के बारे में ज़्यादा से ज़्यादा कितने नतीजे दिए जा सकते हैं. यह 1 से 20 (डिफ़ॉल्ट) के बीच होना चाहिए.
नतीजों की संख्या की ज़्यादा से ज़्यादा संख्या सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetMaxResultCount()
तरीके को कॉल करें. -
रैंक की प्राथमिकता
इस्तेमाल करने के लिए रैंकिंग का टाइप. अगर यह पैरामीटर शामिल नहीं किया जाता है, तो नतीजों की रैंकिंग लोकप्रियता के हिसाब से की जाती है. इनमें से कोई एक स्थिति हो सकती है:
POPULARITY
(डिफ़ॉल्ट) नतीजों को उनकी लोकप्रियता के हिसाब से क्रम में लगाता है.DISTANCE
बताई गई जगह से दूरी के हिसाब से, नतीजों को बढ़ते क्रम में क्रम से लगाता है.
रैंक की प्राथमिकता वाला पैरामीटर सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetRankPreference()
तरीके को कॉल करें. -
क्षेत्र कोड
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया जाने वाला क्षेत्रीय कोड. इसे दो वर्णों वाले CLDR कोड की वैल्यू के तौर पर बताया जाता है. कोई डिफ़ॉल्ट मान नहीं है.
अगर जवाब में दिए गए
formattedAddress
फ़ील्ड का देश का नाम,regionCode
से मेल खाता है, तो देश का कोडformattedAddress
में शामिल नहीं किया जाता.ज़्यादातर CLDR कोड, ISO 3166-1 कोड के समान होते हैं. हालांकि, इसमें कुछ खास अपवाद भी हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि ISO 3166-1 कोड "gb" है. तकनीकी तौर पर, यूनाइटेड किंगडम ऑफ़ ग्रेट ब्रिटेन और नॉर्दन आयरलैंड की इकाई के लिए इसका इस्तेमाल किया जा सकता है. पैरामीटर, लागू कानून के आधार पर नतीजों पर असर डाल सकता है.
क्षेत्र का कोड पैरामीटर सेट करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट बनाते समयsetRegionCode()
तरीके को कॉल करें.
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाएं
जब आपका ऐप्लिकेशन PlacesClient
से मिली जानकारी (जैसे, फ़ोटो और समीक्षाएं) दिखाता है, तो ऐप्लिकेशन को ज़रूरी एट्रिब्यूशन भी दिखाने चाहिए.
ज़्यादा जानकारी के लिए, Android के लिए Places SDK टूल से जुड़ी नीतियां देखें.