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