आस-पास की जगहें खोजने (नया) का अनुरोध करने पर, एक या उससे ज़्यादा तरह की जगहों को खोजा जाता है. साथ ही, तय किए गए इलाके में मिलती-जुलती जगहों की सूची दिखाता है. एक या उससे ज़्यादा डेटा टाइप बताने वाला फ़ील्ड मास्क ज़रूरी है. Nearby Search (नया) सिर्फ़ पोस्ट अनुरोधों के साथ काम करता है.
एपीआई एक्सप्लोरर की मदद से, लाइव अनुरोध किए जा सकते हैं. ऐसा करके, एपीआई और एपीआई के विकल्पों के बारे में जाना जा सकता है:
इसे आज़माएं!Nearby Search (नए) के अनुरोध
Nearby Search (नया) अनुरोध, किसी यूआरएल के लिए एचटीटीपी पोस्ट अनुरोध होता है जो इस फ़ॉर्म में होता है:
https://places.googleapis.com/v1/places:searchNearby
सभी पैरामीटर को JSON अनुरोध के मुख्य भाग या हेडर में पास करें, ताकि उन्हें पोस्ट अनुरोध के हिस्से के तौर पर पास किया जा सके. उदाहरण के लिए:
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.businessStatus
,places.displayName
,places.formattedAddress
,places.googleMapsUri
,places.iconBackgroundColor
,places.iconMaskBaseUri
,places.id
,places.location
,places.name
*,places.photos
,places.plusCode
,places.primaryType
,places.primaryTypeDisplayName
,places.shortFormattedAddress
,places.subDestinations
, {19/2}, {20/2} नामplaces.subDestinations
, , ,places.name
places.types
places.utcOffsetMinutes
places.viewport
places/PLACE_ID
जगह के टेक्स्ट का नाम ऐक्सेस करने के लिए,places.displayName
का इस्तेमाल करें.नीचे दिए गए फ़ील्ड, आस-पास खोज (बेहतर) SKU को ट्रिगर करते हैं:
places.currentOpeningHours
,places.currentSecondaryOpeningHours
,places.internationalPhoneNumber
,places.nationalPhoneNumber
,places.priceLevel
,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.delivery
, {2, {2,places.delivery
places.reviews
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDesserts
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 } }
ज़रूरी नहीं पैरामीटर
-
शामिल किए गए प्रकार/शामिल नहीं किए गए प्रकार, शामिल प्राइमरी टाइप/शामिल नहीं किए गए प्राइमरीटाइप
इससे, खोज के नतीजों को फ़िल्टर करने के लिए इस्तेमाल किए जाने वाले टेबल A टाइप से, डेटा टाइप की सूची तय करने में मदद मिलती है. हर तरह की पाबंदी वाली कैटगरी में ज़्यादा से ज़्यादा 50 टाइप दिए जा सकते हैं.
किसी जगह के साथ जुड़े टेबल A टाइप में से, सिर्फ़ एक एक प्राइमरी टाइप हो सकता है. उदाहरण के लिए, मुख्य टाइप
"mexican_restaurant"
या"steak_house"
हो सकता है. जगह के मुख्य टाइप के हिसाब से नतीजों को फ़िल्टर करने के लिए,includedPrimaryTypes
औरexcludedPrimaryTypes
का इस्तेमाल करें.किसी जगह के साथ जुड़े टाइप टेबल A में से एक से ज़्यादा टाइप की वैल्यू भी हो सकती हैं. उदाहरण के लिए, किसी रेस्टोरेंट में इस तरह के ईमेल हो सकते हैं:
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
. किसी जगह से जुड़ी सूची के नतीजों को फ़िल्टर करने के लिए,includedTypes
औरexcludedTypes
का इस्तेमाल करें.अगर किसी खोज के लिए अलग-अलग तरह की पाबंदियां लगाई गई हैं, तो सिर्फ़ वही जगहें दिखाई जाती हैं जो सभी पाबंदियों का पालन करती हों. उदाहरण के लिए, अगर
{"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 से मुख्य जगहों के टाइप की कॉमा-सेपरेटेड लिस्ट.
अगर एक ही तरह का प्राइमरी टाइप मौजूद होता है, तो
INVALID_ARGUMENT
गड़बड़ी दिखती है. जैसे, एक ही टाइप,includedPrimaryTypes
औरexcludedPrimaryTypes
, दोनों में दिख रहा हो. -
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) है, जबकि इसका ISO 3166-1 कोड "gb" है (तकनीकी रूप से "यूनाइटेड किंगडम ऑफ़ ग्रेट ब्रिटेन और नॉदर्न आयरलैंड" की इकाई के लिए). पैरामीटर, लागू कानून के आधार पर नतीजों पर असर डाल सकता है.
आस-पास खोज (नए) के उदाहरण
एक ही तरह की जगहें ढूंढना
इस उदाहरण में, 500 मीटर के दायरे में आने वाले सभी रेस्टोरेंट के डिसप्ले नेम के लिए, आस-पास की जाने वाली खोज (नया) का अनुरोध दिखाया गया है. इसे circle
ने तय किया है:
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
पैरामीटर को फ़ील्ड मास्क पर सेट करें. - अनुरोध के मुख्य हिस्से में बदलाव करें. हालांकि, ऐसा करना ज़रूरी नहीं है.
- लागू करें बटन को चुनें. पॉप-अप में, वह खाता चुनें जिसका इस्तेमाल आपको अनुरोध करने के लिए करना है.
एपीआई एक्सप्लोरर पैनल में, एपीआई एक्सप्लोरर विंडो को बड़ा करने के लिए, 'बड़ा करें' आइकॉन को चुनें.