आस-पास की जगहें खोजने की सुविधा (नया) के लिए किए गए अनुरोध में, एक या उससे ज़्यादा तरह की जगहों की जानकारी दी जाती है. साथ ही, यह अनुरोध, बताए गए इलाके में मैच होने वाली जगहों की सूची दिखाता है. एक या उससे ज़्यादा डेटा टाइप बताने वाला फ़ील्ड मास्क ज़रूरी है. आस-पास खोजने की सुविधा (नया वर्शन) सिर्फ़ POST अनुरोधों के साथ काम करती है.
एपीआई एक्सप्लोरर की मदद से, लाइव अनुरोध किए जा सकते हैं. इससे आपको एपीआई और एपीआई के विकल्पों के बारे में जानकारी मिलती है:
आस-पास की जगहें खोजने की सुविधा (नया वर्शन) के नतीजे मैप पर देखने के लिए, इंटरैक्टिव डेमो आज़माएं.
आस-पास की जगहों की जानकारी (नया) के अनुरोध
आस-पास के कारोबारों को खोजने की सुविधा (नया) का अनुरोध, इस फ़ॉर्मैट में यूआरएल पर एचटीटीपी पोस्ट करने का अनुरोध होता है:
https://places.googleapis.com/v1/places:searchNearby
सभी पैरामीटर को JSON अनुरोध के मुख्य हिस्से में या POST अनुरोध के हिस्से के तौर पर हेडर में पास करें. उदाहरण के लिए:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
आस-पास की जगहों की जानकारी (नया) के जवाब
आस-पास खोजने की सुविधा (नया वर्शन), रिस्पॉन्स के तौर पर JSON ऑब्जेक्ट दिखाती है. जवाब में:
places
कलेक्शन में, खोज के नतीजे में शामिल सभी जगहें शामिल होती हैं.- ऐरे में मौजूद हर जगह को एक
Place
ऑब्जेक्ट से दिखाया जाता है.Place
ऑब्जेक्ट में किसी एक जगह के बारे में पूरी जानकारी होती है. - अनुरोध में पास किए गए FieldMask से,
Place
ऑब्जेक्ट में दिखाए गए फ़ील्ड की सूची का पता चलता है.
पूरा JSON ऑब्जेक्ट इस फ़ॉर्मैट में होता है:
{ "places": [ { object (Place) } ] }
ज़रूरी पैरामीटर
-
FieldMask
रिस्पॉन्स में दिखाए जाने वाले फ़ील्ड की सूची तय करने के लिए, रिस्पॉन्स फ़ील्ड मास्क बनाएं. यूआरएल पैरामीटर
$fields
याfields
का इस्तेमाल करके या एचटीटीपी हेडरX-Goog-FieldMask
का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को तरीके में पास करें. रिस्पॉन्स में, दिखाए गए फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं होती. फ़ील्ड मास्क को हटाने पर, यह तरीका गड़बड़ी का मैसेज दिखाता है.फ़ील्ड मास्किंग, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जा सकता है कि आपने ज़रूरत से ज़्यादा डेटा का अनुरोध न किया हो. इससे, प्रोसेसिंग में लगने वाले समय और बिलिंग शुल्कों से बचा जा सकता है.
जगह के डेटा टाइप की सूची दें. यह सूची, कॉमा लगाकर अलग की जानी चाहिए. उदाहरण के लिए, जगह का डिसप्ले नेम और पता पाने के लिए.
X-Goog-FieldMask: places.displayName,places.formattedAddress
सभी फ़ील्ड वापस पाने के लिए,
*
का इस्तेमाल करें.X-Goog-FieldMask: *
इनमें से एक या उससे ज़्यादा फ़ील्ड डालें:
ये फ़ील्ड, आस-पास की जगहों के हिसाब से खोज (बुनियादी) SKU को ट्रिगर करते हैं:
places.accessibilityOptions
places.addressComponents
places.adrFormatAddress
places.attributions
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
*
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.id
places.location
places.name
**
places.photos
places.plusCode
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.subDestinations
places.types
places.utcOffsetMinutes
places.viewport
*places.googleMapsLinks
फ़ील्ड, GA से पहले की झलक के चरण में है और इसके लिए कोई शुल्क नहीं लिया जाता. इसका मतलब है कि झलक के दौरान इस्तेमाल करने के लिए, बिलिंग 0 डॉलर है.
**places.name
फ़ील्ड में, जगह का संसाधन का नाम होता है. यह नाम इस फ़ॉर्मैट में होता है:places/PLACE_ID
. जगह के टेक्स्ट वाले नाम को ऐक्सेस करने के लिए,places.displayName
का इस्तेमाल करें.ये फ़ील्ड, आस-पास की जगहों के हिसाब से खोज (बेहतर) SKU को ट्रिगर करते हैं:
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
ये फ़ील्ड, आस-पास की जगहों के हिसाब से खोज (प्राथमिक) SKU को ट्रिगर करते हैं:
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeOptions
places.fuelOptions
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.routingSummaries
*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* सिर्फ़ टेक्स्ट सर्च और आस-पास की जगहों की जानकारी के लिए
-
locationRestriction
खोज के लिए चुना गया क्षेत्र, जिसे सर्कल के तौर पर दिखाया गया है. इसमें केंद्र बिंदु और त्रिज्या, मीटर में दी गई है. त्रिज्या 0.0 से 50, 000.0 के बीच होनी चाहिए. त्रिज्या की डिफ़ॉल्ट वैल्यू 0.0 होती है. आपको अपने अनुरोध में, इसे 0.0 से ज़्यादा की वैल्यू पर सेट करना होगा.
उदाहरण के लिए:
"locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
ज़रूरी नहीं पैरामीटर
-
includedTypes/excludedTypes, includedPrimaryTypes/excludedPrimaryTypes
इससे, खोज के नतीजों को फ़िल्टर करने के लिए इस्तेमाल की जाने वाली टेबल 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": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
की वैल्यू दी है, तो खोज के नतीजों में ऐसी जगहें दिखेंगी जो"restaurant"
से जुड़ी सेवाएं देती हैं, लेकिन मुख्य रूप से"steak_house"
के तौर पर काम नहीं करती हैं.includedTypes
टेबल A में मौजूद, जगह के टाइप की सूची, जिसमें कॉमा लगाकर अलग किया गया है. अगर इस पैरामीटर को शामिल नहीं किया जाता है, तो सभी तरह की जगहें दिखती हैं.
excludedTypes
टेबल A में मौजूद जगह के टाइप की सूची, जिसमें कॉमा लगाकर अलग किया गया है. इस सूची में शामिल जगहों को खोज के नतीजों से बाहर रखा जाएगा.
अगर अनुरोध में
includedTypes
( जैसे,"school"
) औरexcludedTypes
(जैसे,"primary_school"
) दोनों की जानकारी दी जाती है, तो रिस्पॉन्स में ऐसी जगहें शामिल होती हैं जिन्हें"school"
कैटगरी में रखा गया है, लेकिन"primary_school"
में नहीं. जवाब में ऐसी जगहें शामिल होती हैं जोincludedTypes
में से कम से कम एक औरexcludedTypes
में से किसी भी से मैच करती हैं.अगर कोई ऐसा टाइप है जो
includedTypes
औरexcludedTypes
, दोनों में दिखता है, तोINVALID_REQUEST
गड़बड़ी का मैसेज दिखता है.includedPrimaryTypes
टेबल A में मौजूद, जगह के मुख्य टाइप की सूची, जिसमें कॉमा लगाकर अलग किया गया है. इसे खोज के नतीजों में शामिल किया जाता है.
excludedPrimaryTypes
टेबल A में मौजूद, जगह के मुख्य टाइप की सूची, जिसमें कॉमा लगाकर अलग किया गया है. इस सूची में शामिल जगहों को खोज के नतीजों से बाहर रखा जाएगा.
अगर कोई मुख्य टाइप एक-दूसरे से मेल नहीं खाता है, जैसे कि
includedPrimaryTypes
औरexcludedPrimaryTypes
, तोINVALID_ARGUMENT
गड़बड़ी का मैसेज दिखता है. -
languageCode
वह भाषा जिसमें नतीजे दिखाने हैं.
- इस्तेमाल की जा सकने वाली भाषाओं की सूची देखें. Google अक्सर, इस्तेमाल की जा सकने वाली भाषाओं की सूची को अपडेट करता है. इसलिए, हो सकता है कि इस सूची में सभी भाषाएं शामिल न हों.
- अगर
languageCode
नहीं दिया जाता है, तो एपीआई डिफ़ॉल्ट रूप सेen
पर सेट हो जाता है. अगर आपने अमान्य भाषा कोड डाला है, तो एपीआईINVALID_ARGUMENT
वाली गड़बड़ी दिखाता है. - एपीआई, मोहल्ले का ऐसा पता देने की पूरी कोशिश करता है जिसे उपयोगकर्ता और स्थानीय लोग, दोनों पढ़ सकें. इस लक्ष्य को हासिल करने के लिए, यह स्थानीय भाषा में सड़क के पते दिखाता है. साथ ही, ज़रूरत पड़ने पर, उपयोगकर्ता के लिए पढ़ने लायक स्क्रिप्ट में बदल देता है. ऐसा, उपयोगकर्ता की पसंदीदा भाषा के हिसाब से किया जाता है. अन्य सभी पते, आपकी पसंदीदा भाषा में दिखाए जाते हैं. पते के सभी कॉम्पोनेंट, एक ही भाषा में दिखाए जाते हैं. यह भाषा, पहले कॉम्पोनेंट से चुनी जाती है.
- अगर कोई नाम आपकी पसंदीदा भाषा में उपलब्ध नहीं है, तो एपीआई सबसे मिलते-जुलते नाम का इस्तेमाल करता है.
- पसंदीदा भाषा का असर, उन नतीजों के सेट पर पड़ता है जिन्हें एपीआई दिखाने के लिए चुनता है और जिनके क्रम में उन्हें दिखाया जाता है. जियोकोडर, भाषा के हिसाब से अंग्रेज़ी के संक्षिप्त रूपों को अलग-अलग तरीके से समझता है. जैसे, सड़क के टाइप के लिए अंग्रेज़ी के संक्षिप्त रूप या ऐसे समानार्थी शब्द जो एक भाषा में मान्य हो सकते हैं, लेकिन दूसरी भाषा में नहीं.
-
maxResultCount
जगह की जानकारी के ज़्यादा से ज़्यादा नतीजों की संख्या तय करता है. यह वैल्यू 1 से 20 (डिफ़ॉल्ट) के बीच होनी चाहिए.
-
rankPreference
इस्तेमाल की जाने वाली रैंकिंग का टाइप. अगर इस पैरामीटर को शामिल नहीं किया जाता है, तो नतीजों को लोकप्रियता के हिसाब से रैंक किया जाता है. इनमें से कोई एक हो सकता है:
POPULARITY
(डिफ़ॉल्ट) नतीजों को उनकी लोकप्रियता के हिसाब से क्रम में लगाता है.DISTANCE
तय की गई जगह से दूरी के हिसाब से, नतीजों को बढ़ते क्रम में क्रमबद्ध करता है.
-
regionCode
रिस्पॉन्स को फ़ॉर्मैट करने के लिए इस्तेमाल किया जाने वाला क्षेत्र कोड. इसे दो वर्णों वाले CLDR कोड की वैल्यू के तौर पर तय किया जाता है. कोई डिफ़ॉल्ट वैल्यू नहीं है.
अगर जवाब में
formattedAddress
फ़ील्ड में मौजूद देश का नाम,regionCode
से मेल खाता है, तोformattedAddress
से देश कोड हटा दिया जाता है. इस पैरामीटर का असरadrFormatAddress
पर नहीं पड़ता, जिसमें हमेशा देश का नाम शामिल होता है. इसके अलावा, इसका असरshortFormattedAddress
पर भी नहीं पड़ता, जिसमें कभी भी देश का नाम शामिल नहीं होता.ज़्यादातर CLDR कोड, ISO 3166-1 कोड से मिलते-जुलते होते हैं. हालांकि, कुछ कोड अलग होते हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि उसका आईएसओ 3166-1 कोड "gb" है. तकनीकी तौर पर, यह कोड "ग्रेट ब्रिटेन और उत्तरी आयरलैंड के यूनाइटेड किंगडम" की इकाई के लिए है. लागू कानून के आधार पर, इस पैरामीटर से नतीजों पर असर पड़ सकता है.
आस-पास की जगहों की जानकारी (नया) के उदाहरण
एक तरह की जगहें खोजना
यहां दिए गए उदाहरण में, आस-पास के रेस्टोरेंट (नया) के लिए अनुरोध दिखाया गया है. इसमें circle
के हिसाब से, 500 मीटर के दायरे में मौजूद सभी रेस्टोरेंट के डिसप्ले नेम दिखाए गए हैं:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
ध्यान दें कि X-Goog-FieldMask
हेडर से पता चलता है कि रिस्पॉन्स में ये डेटा फ़ील्ड शामिल हैं: places.displayName
.
इसके बाद, जवाब इस फ़ॉर्मैट में होगा:
{ "places": [ { "displayName": { "text": "La Mar Cocina Peruana", "languageCode": "en" } }, { "displayName": { "text": "Kokkari Estiatorio", "languageCode": "en" } }, { "displayName": { "text": "Harborview Restaurant & Bar", "languageCode": "en" } }, ... }
ज़्यादा जानकारी दिखाने के लिए, फ़ील्ड मास्क में ज़्यादा डेटा टाइप जोड़ें.
उदाहरण के लिए, जवाब में रेस्टोरेंट का पता, टाइप, और वेब पता शामिल करने के लिए places.formattedAddress,places.types,places.websiteUri
जोड़ें:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri" \ https://places.googleapis.com/v1/places:searchNearby
जवाब अब इस फ़ॉर्मैट में है:
{ "places": [ { "types": [ "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "PIER 1 1/2 The Embarcadero N, San Francisco, CA 94105, USA", "websiteUri": "http://lamarsf.com/", "displayName": { "text": "La Mar Cocina Peruana", "languageCode": "en" } }, { "types": [ "greek_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "200 Jackson St, San Francisco, CA 94111, USA", "websiteUri": "https://kokkari.com/", "displayName": { "text": "Kokkari Estiatorio", "languageCode": "en" } }, ... }
अलग-अलग तरह की जगहें ढूंढना
यहां दिए गए उदाहरण में, आस-पास के स्टोर (नया) के लिए किए गए अनुरोध को दिखाया गया है. इसमें, circle
के 1,000 मीटर के दायरे में मौजूद सभी सुविधा स्टोर और शराब की दुकानों के नाम दिखाए गए हैं:
curl -X POST -d '{ "includedTypes": ["liquor_store", "convenience_store"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.primaryType,places.types" \ https://places.googleapis.com/v1/places:searchNearby
places.primaryType
और places.types
जोड़े गए हैं, ताकि रिस्पॉन्स में हर जगह के टाइप की जानकारी शामिल हो. इससे नतीजों में सही जगह चुनना आसान हो जाता है.
खोज के नतीजों में किसी तरह की जगह को शामिल न करना
यहां दिए गए उदाहरण में, आस-पास की जगहों के खोज नतीजों (नया) के लिए, "school"
टाइप की सभी जगहों के लिए अनुरोध दिखाया गया है. इसमें "primary_school"
टाइप की सभी जगहों को शामिल नहीं किया गया है. साथ ही, नतीजों को दूरी के हिसाब से रैंक किया गया है:
curl -X POST -d '{ "includedTypes": ["school"], "excludedTypes": ["primary_school"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } }, "rankPreference": "DISTANCE" }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
किसी इलाके के आस-पास की सभी जगहें खोजना और उन्हें दूरी के हिसाब से क्रम में लगाना
यहां दिए गए उदाहरण में, सैन फ़्रांसिस्को के बाज़ार के पास मौजूद जगहों के लिए, आस-पास की जगहें खोजने की सुविधा (नया) का अनुरोध दिखाया गया है. इस उदाहरण में, आपने दूरी के हिसाब से नतीजों को रैंक करने के लिए rankPreference
पैरामीटर शामिल किया है:
curl -X POST -d '{ "maxResultCount": 10, "rankPreference": "DISTANCE", "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
इसे आज़माएं!
एपीआई एक्सप्लोरर की मदद से, सैंपल अनुरोध किए जा सकते हैं, ताकि आपको एपीआई और एपीआई के विकल्पों के बारे में जानकारी मिल सके.
पेज की दाईं ओर मौजूद, एपीआई आइकॉन api चुनें.
इसके बाद, अनुरोध पैरामीटर में बदलाव करें. हालांकि, ऐसा करना ज़रूरी नहीं है.
लागू करें बटन चुनें. डायलॉग बॉक्स में, वह खाता चुनें जिसका इस्तेमाल करके आपको अनुरोध करना है.
एपीआई एक्सप्लोरर पैनल में, एपीआई एक्सप्लोरर विंडो को बड़ा करने के लिए, फ़ुलस्क्रीन आइकॉन फ़ुलस्क्रीन चुनें.