आस-पास की जगहें खोजने की सुविधा (नया) के लिए किए गए अनुरोध में, एक या उससे ज़्यादा तरह की जगहों की जानकारी दी जाती है. साथ ही, यह अनुरोध, बताए गए इलाके में मिलती-जुलती जगहों की सूची दिखाता है. एक या उससे ज़्यादा डेटा टाइप बताने वाला फ़ील्ड मास्क ज़रूरी है. आस-पास खोजने की सुविधा (नया वर्शन) सिर्फ़ 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
आस-पास की जगहों की जानकारी (नया) के जवाब
Nearby Search (नया) रिस्पॉन्स के तौर पर 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.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.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 और 50000.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 कोड से मिलते-जुलते होते हैं. हालांकि, कुछ कोड अलग होते हैं. उदाहरण के लिए, यूनाइटेड किंगडम का सीसीटीएलडी "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
इसे आज़माएं!
एपीआई एक्सप्लोरर से आपको सैंपल के तौर पर अनुरोध करने की सुविधा मिलती है. इससे आपको एपीआई और एपीआई के विकल्पों के बारे में जानकारी मिलती है.
- पेज के दाईं ओर मौजूद, एपीआई आइकॉन को चुनें.
- इसके अलावा, स्टैंडर्ड पैरामीटर दिखाएं को बड़ा करें और फ़ील्ड मास्क में
fields
पैरामीटर सेट करें. - अनुरोध के मुख्य हिस्से में बदलाव करें. हालांकि, ऐसा करना ज़रूरी नहीं है.
- लागू करें बटन चुनें. पॉप-अप में, वह खाता चुनें जिसका इस्तेमाल करके आपको अनुरोध करना है.
एपीआई एक्सप्लोरर पैनल में, एपीआई एक्सप्लोरर विंडो को बड़ा करने के लिए, बड़ा करें आइकॉन, चुनें.