आस-पास की जगहों की जानकारी (नया) के लिए किए गए अनुरोध में, खोज के लिए तय किया गया इलाका इनपुट के तौर पर लिया जाता है. इसे एक सर्कल के तौर पर तय किया जाता है. सर्कल के बीच वाले पॉइंट के अक्षांश और देशांतर के कोऑर्डिनेट और मीटर में रेडियस से इसे तय किया जाता है. अनुरोध के जवाब में, खोज के लिए तय किए गए इलाके में मौजूद, मिलती-जुलती जगहों की सूची मिलती है. हर जगह को
Place
ऑब्जेक्ट से दिखाया जाता है.
डिफ़ॉल्ट रूप से, जवाब में खोज के लिए तय किए गए इलाके में मौजूद, सभी तरह की जगहों की जानकारी शामिल होती है. आपके पास यह विकल्प होता है कि जवाब को फ़िल्टर किया जाए. इसके लिए, जगहों के टाइप की सूची तय करें, ताकि उन्हें जवाब में साफ़ तौर पर शामिल या बाहर किया जा सके. उदाहरण के लिए, आपके पास यह तय करने का विकल्प है कि जवाब में सिर्फ़ "रेस्टोरेंट", "बेकरी", और "कैफ़े" टाइप की जगहें शामिल हों या "स्कूल" टाइप की सभी जगहों को बाहर रखा जाए.
आस-पास की जगहों की जानकारी (नया) के लिए किए गए अनुरोध
`PlacesClient.searchNearby` को कॉल करके, आस-पास की जगहों की जानकारी (नया) के लिए अनुरोध करें
PlacesClient.searchNearby,
इसके लिए,
SearchNearbyRequest
ऑब्जेक्ट पास करें. इसमें अनुरोध के पैरामीटर तय किए जाते हैं.
SearchNearbyRequest ऑब्जेक्ट में, अनुरोध के लिए ज़रूरी और ज़रूरी नहीं पैरामीटर तय किए जाते हैं. ज़रूरी पैरामीटर में ये शामिल हैं:
Placeऑब्जेक्ट में वापस लाने के लिए फ़ील्ड की सूची. इसे फ़ील्ड मास्क भी कहा जाता है. अगर फ़ील्ड की सूची में कम से कम एक फ़ील्ड तय नहीं किया जाता है या फ़ील्ड की सूची को छोड़ दिया जाता है, तो कॉल के जवाब में गड़बड़ी दिखती है.- खोज के लिए तय किए गए इलाके के लिए, जगह की जानकारी से जुड़ी पाबंदी. इसे अक्षांश/देशांतर के जोड़े और मीटर में रेडियस की वैल्यू के तौर पर तय किया जाता है.
आस-पास की जगहों की जानकारी के लिए किए गए इस अनुरोध में, यह तय किया गया है कि खोज के नतीजों में मौजूद हर Place ऑब्जेक्ट के लिए, जवाब में Place ऑब्जेक्ट में Place.Field.ID और Place.Field.DISPLAY_NAME फ़ील्ड शामिल हों. साथ ही, जवाब को फ़िल्टर करके, सिर्फ़ "रेस्टोरेंट" और "कैफ़े" टाइप की जगहों की जानकारी दिखाई जाती है. हालांकि, "pizza_restaurant" और "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.DISPLAY_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(); });
आस-पास की जगहों की जानकारी (नया) के लिए किए गए अनुरोध के जवाब
The
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 ऑब्जेक्ट में डेटा को ऐक्सेस करने के अन्य उदाहरण देखने के लिए, Place
ऑब्जेक्ट के डेटा फ़ील्ड को ऐक्2सेस करना लेख पढ़ें.
ज़रूरी पैरामीटर
खोज के लिए ज़रूरी पैरामीटर तय करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट का इस्तेमाल करें.
फ़ील्ड की सूची
जब आप Place Details का अनुरोध करते हैं, तो आपको फ़ील्ड मास्क के तौर पर, जगह के लिए
Placeऑब्जेक्ट में वापस लाने के लिए डेटा तय करना होगा. फ़ील्ड मास्क तय करने के लिए,Place.Fieldसे वैल्यू का कलेक्शन,SearchNearbyRequestऑब्जेक्ट को पास करें. फ़ील्ड मास्क करना, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि आपने ज़रूरत से ज़्यादा डेटा का अनुरोध न किया हो. इससे, ज़रूरत से ज़्यादा प्रोसेसिंग टाइम और बिलिंग शुल्क से बचने में मदद मिलती है.इनमें से एक या उससे ज़्यादा फ़ील्ड तय करें:
इन फ़ील्ड से, आस-पास की जगहों की जानकारी के लिए, Pro SKU ट्रिगर होता है:
Place.Field.ADDRESS_COMPONENTS
Place.Field.BUSINESS_STATUS
Place.Field.ADDRESS
Place.Field.DISPLAY_NAME>*
* अबPlace.Field.NAMEका इस्तेमाल नहीं किया जाता है. इसके बजाय, इसका इस्तेमाल करें.
Place.Field.ICON_BACKGROUND_COLOR
Place.Field.ICON_MASK_URL*
* अबPlace.Field.ICON_URLका इस्तेमाल नहीं किया जाता है. इसके बजाय, इसका इस्तेमाल करें.
Place.Field.ID
Place.Field.LAT_LNG
Place.Field.PHOTO_METADATAS
Place.Field.PLUS_CODE
Place.Field.PRIMARY_TYPE
Place.Field.PRIMARY_TYPE_DISPLAY_NAME
Place.Field.RESOURCE_NAME
Place.Field.TYPES
Place.Field.UTC_OFFSET
Place.Field.VIEWPORT
Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCEफ़ील्ड और उनसे जुड़े SKU की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
इन फ़ील्ड से, आस-पास की जगहों की जानकारी के लिए, Enterprise SKU ट्रिगर होता है:
Place.Field.CURRENT_OPENING_HOURS
Place.Field.CURRENT_SECONDARY_OPENING_HOURS
Place.Field.INTERNATIONAL_PHONE_NUMBER*
* अबPlace.Field.PHONE_NUMBERका इस्तेमाल नहीं किया जाता है. इसके बजाय, इसका इस्तेमाल करें.
Place.Field.NATIONAL_PHONE_NUMBER
Place.Field.OPENING_HOURS
Place.Field.PRICE_LEVEL
Place.Field.RATING
Place.Field.SECONDARY_OPENING_HOURS
Place.Field.USER_RATING_COUNT*
* अबPlace.Field.USER_RATINGS_TOTALका इस्तेमाल नहीं किया जाता है. इसके बजाय, इसका इस्तेमाल करें.
Place.Field.WEBSITE_URIफ़ील्ड और उनसे जुड़े SKU की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
इन फ़ील्ड से, आस-पास की जगहों की जानकारी के लिए Enterprise Plus SKU ट्रिगर होता है:
Place.Field.ALLOWS_DOGS
Place.Field.CURBSIDE_PICKUP
Place.Field.DELIVERY
Place.Field.DINE_IN
Place.Field.EDITORIAL_SUMMARY
Place.Field.EV_CHARGE_OPTIONS
Place.Field.FUEL_OPTIONS
Place.Field.GOOD_FOR_CHILDREN
Place.Field.GOOD_FOR_GROUPS
Place.Field.GOOD_FOR_WATCHING_SPORTS
Place.Field.LIVE_MUSIC
Place.Field.MENU_FOR_CHILDREN
Place.Field.OUTDOOR_SEATING
Place.Field.PARKING_OPTIONS
Place.Field.PAYMENT_OPTIONS
Place.Field.RESERVABLE
Place.Field.RESTROOM
Place.Field.REVIEWS
Place.Field.SERVES_BEER
Place.Field.SERVES_BREAKFAST
Place.Field.SERVES_BRUNCH
Place.Field.SERVES_COCKTAILS
Place.Field.SERVES_COFFEE
Place.Field.SERVES_DESSERT
Place.Field.SERVES_DINNER
Place.Field.SERVES_LUNCH
Place.Field.SERVES_VEGETARIAN_FOOD
Place.Field.SERVES_WINE
Place.Field.TAKEOUTफ़ील्ड और उनसे जुड़े SKU की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
फ़ील्ड की सूची वाला पैरामीटर सेट करने के लिए,
setPlaceFields()तरीके कोSearchNearbyRequestऑब्जेक्ट बनाते समय कॉल करें.यहां दिए गए उदाहरण में, दो फ़ील्ड वैल्यू की सूची तय की गई है. इससे यह तय होता है कि अनुरोध के जवाब में मिलने वाले
Placeऑब्जेक्ट में,Place.Field.IDऔरPlace.Field.DISPLAY_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.DISPLAY_NAME);
जगह की जानकारी से जुड़ी पाबंदी
A
LocationRestrictionऑब्जेक्ट, खोज के लिए तय किए गए इलाके को दिखाता है. इसे एक सर्कल के तौर पर तय किया जाता है. सर्कल के बीच वाले पॉइंट और मीटर में रेडियस से इसे तय किया जाता है. रेडियस की वैल्यू, 0.0 से ज़्यादा और 50000.0 से कम या इसके बराबर होनी चाहिए. ध्यान रखें कि बहुत छोटा रेडियस तय करने पर, जवाब के तौर परZERO_RESULTSमिलेगा.जगह की जानकारी से जुड़ी पाबंदी वाला पैरामीटर सेट करने के लिए,
setLocationRestriction()तरीके को कॉल करें जबSearchNearbyRequestऑब्जेक्ट बनाया जा रहा हो.
ज़रूरी नहीं पैरामीटर
खोज के लिए ज़रूरी नहीं पैरामीटर तय करने के लिए,
SearchNearbyRequest
ऑब्जेक्ट का इस्तेमाल करें.
-
टाइप और प्राइमरी टाइप
इससे, टाइप की टेबल A से टाइप की सूची तय की जा सकती है. इसका इस्तेमाल, खोज के नतीजों को फ़िल्टर करने के लिए किया जाता है. टाइप से जुड़ी पाबंदी की हर कैटगरी में, ज़्यादा से ज़्यादा 50 टाइप तय किए जा सकते हैं.
किसी जगह से, टाइप की टेबल A में मौजूद सिर्फ़ एक प्राइमरी टाइप जोड़ा जा सकता है. उदाहरण के लिए, प्राइमरी टाइप
"mexican_restaurant"या"steak_house"हो सकता है. किसी जगह के प्राइमरी टाइप के आधार पर नतीजों को फ़िल्टर करने के लिए,includedPrimaryTypesऔरexcludedPrimaryTypesका इस्तेमाल करें.किसी जगह से, टाइप की टेबल A में मौजूद एक से ज़्यादा टाइप वैल्यू भी जोड़ी जा सकती हैं. उदाहरण के लिए, किसी रेस्टोरेंट के ये टाइप हो सकते हैं:
"seafood_restaurant","restaurant","food","point_of_interest","establishment". किसी जगह से जुड़े टाइप की सूची के आधार पर नतीजों को फ़िल्टर करने के लिए,includedTypesऔरexcludedTypesका इस्तेमाल करें.जब कोई सामान्य प्राइमरी टाइप तय किया जाता है, जैसे कि
"restaurant"या"hotel", तो जवाब में ऐसी जगहें शामिल हो सकती हैं जिनका प्राइमरी टाइप, तय किए गए प्राइमरी टाइप से ज़्यादा खास हो. उदाहरण के लिए, आपने प्राइमरी टाइप"restaurant"शामिल करने के लिए तय किया है. इसके बाद, जवाब में"restaurant"के प्राइमरी टाइप वाली जगहें शामिल हो सकती हैं. हालांकि, जवाब में"chinese_restaurant"या"seafood_restaurant"जैसे ज़्यादा खास प्राइमरी टाइप वाली जगहें भी शामिल हो सकती हैं.अगर खोज के लिए, टाइप से जुड़ी एक से ज़्यादा पाबंदियां तय की जाती हैं, तो सिर्फ़ वे जगहें दिखाई जाती हैं जो सभी पाबंदियों को पूरा करती हैं. उदाहरण के लिए, अगर आपने
includedTypes = Arrays.asList("restaurant")औरexcludedPrimaryTypes = Arrays.asList("steak_house")तय किया है, तो जवाब में दिखाई गई जगहों पर"restaurant"से जुड़ी सेवाएं मिलती हैं. हालांकि, ये जगहें मुख्य तौर पर"steak_house"के तौर पर काम नहीं करती हैं.includedTypesऔरexcludedTypesका इस्तेमाल करने का तरीका जानने के लिए, आस-पास की जगहों की जानकारी (नया) के लिए किए गए अनुरोध लेख पढ़ें.शामिल किए गए टाइप
खोज के लिए, टेबल A में मौजूद जगहों के टाइप की सूची. अगर इस पैरामीटर को छोड़ दिया जाता है, तो सभी टाइप की जगहों की जानकारी मिलती है.
शामिल किए गए टाइप वाला पैरामीटर सेट करने के लिए,
setIncludedTypes()तरीके को कॉल करें जबSearchNearbyRequestऑब्जेक्ट बना रहे हों.बाहर रखे गए टाइप
खोज से बाहर रखने के लिए, टेबल A में मौजूद जगहों के टाइप की सूची.
अगर अनुरोध में
includedTypes(जैसे,"school") औरexcludedTypes(जैसे,"primary_school") दोनों तय किए जाते हैं, तो जवाब में वे जगहें शामिल होती हैं जिन्हें"school"के तौर पर कैटगरी में रखा गया है, लेकिन"primary_school"के तौर पर नहीं. जवाब में वे जगहें शामिल होती हैं जो कम से कम एकincludedTypesसे मैच करती हैं और किसी भीexcludedTypesसे मैच नहीं करती हैं.अगर कोई टाइप,
includedTypesऔरexcludedTypesदोनों में दिखता है, तोINVALID_REQUESTगड़बड़ी दिखती है.बाहर रखे गए टाइप वाला पैरामीटर सेट करने के लिए,
setExcludedTypes()तरीके कोSearchNearbyRequestऑब्जेक्ट बनाते समय कॉल करें.शामिल किए गए प्राइमरी टाइप
खोज में शामिल करने के लिए, टेबल A में मौजूद प्राइमरी टाइप की सूची.
शामिल किए गए प्राइमरी टाइप वाला पैरामीटर सेट करने के लिए,
setIncludedPrimaryTypes()तरीके को कॉल करें जबSearchNearbyRequestऑब्जेक्ट बनाया जा रहा हो.बाहर रखे गए प्राइमरी टाइप
खोज से बाहर रखने के लिए, टेबल A में मौजूद प्राइमरी टाइप की सूची.
अगर कोई प्राइमरी टाइप,
includedPrimaryTypesऔरexcludedPrimaryTypesदोनों में दिखता है, तोINVALID_ARGUMENTगड़बड़ी दिखती है.बाहर रखे गए प्राइमरी टाइप वाला पैरामीटर सेट करने के लिए,
setExcludedPrimaryTypes()तरीके को कॉल करें जबSearchNearbyRequestऑब्जेक्ट बनाया जा रहा हो. -
नतीजों की ज़्यादा से ज़्यादा संख्या
इससे, जगहों के नतीजों की ज़्यादा से ज़्यादा संख्या तय की जाती है. यह संख्या, 1 से 20 (डिफ़ॉल्ट) के बीच होनी चाहिए.
नतीजों की ज़्यादा से ज़्यादा संख्या वाला पैरामीटर सेट करने के लिए,
setMaxResultCount()तरीके को कॉल करें जबSearchNearbyRequestऑब्जेक्ट बनाया जा रहा हो. -
रैंक की प्राथमिकता
रैंक करने के लिए इस्तेमाल किया जाने वाला टाइप. अगर इस पैरामीटर को छोड़ दिया जाता है, तो नतीजों को लोकप्रियता के हिसाब से रैंक किया जाता है. यह इनमें से कोई एक हो सकता है:
POPULARITY(डिफ़ॉल्ट) नतीजों को उनकी लोकप्रियता के हिसाब से क्रम में लगाता है.DISTANCEनतीजों को तय की गई जगह से उनकी दूरी के हिसाब से बढ़ते क्रम में लगाता है.
रैंक की प्राथमिकता वाला पैरामीटर सेट करने के लिए,
setRankPreference()तरीके को कॉल करें जबSearchNearbyRequestऑब्जेक्ट बना रहे हों. -
क्षेत्र कोड
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया गया क्षेत्र कोड. इसे दो वर्णों वाली CLDR कोड वैल्यू के तौर पर तय किया जाता है. इसकी कोई डिफ़ॉल्ट वैल्यू नहीं होती.
अगर जवाब में मौजूद
FORMATTED_ADDRESSफ़ील्ड में देश का नाम,regionCodeसे मैच करता है, तोFORMATTED_ADDRESSसे देश का कोड हटा दिया जाता है.ज़्यादातर CLDR कोड, ISO 3166-1 कोड के जैसे ही होते हैं. हालांकि, कुछ अपवाद भी हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD है "uk" (.co.uk) जबकि इसका ISO 3166-1 कोड "gb" है (तकनीकी तौर पर "ग्रेट ब्रिटेन और नॉर्दर्न आयरलैंड के यूनाइटेड किंगडम" की इकाई के लिए). लागू होने वाले कानून के आधार पर, इस पैरामीटर से नतीजों पर असर पड़ सकता है.
क्षेत्र कोड वाला पैरामीटर सेट करने के लिए,
setRegionCode()तरीके को कॉल करें जबSearchNearbyRequestऑब्जेक्ट बना रहे हों.
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाना
जब आपका ऐप्लिकेशन,
PlacesClientसे मिली जानकारी दिखाता है,
जैसे कि फ़ोटो और समीक्षाएं, तो ऐप्लिकेशन को ज़रूरी एट्रिब्यूशन भी दिखाने होंगे.
ज़्यादा जानकारी के लिए, Android के लिए Places SDK की नीतियां देखें.