Nearby खोज (नया)

आस-पास की जगहें खोजने (नया) का अनुरोध करने पर, एक या उससे ज़्यादा तरह की जगहों को खोजा जाता है. साथ ही, तय किए गए इलाके में मिलती-जुलती जगहों की सूची दिखाता है. एक या उससे ज़्यादा डेटा टाइप बताने वाला फ़ील्ड मास्क ज़रूरी है. 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.nameplaces.typesplaces.utcOffsetMinutesplaces.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.deliveryplaces.reviewsplaces.servesBeerplaces.servesBreakfastplaces.servesBrunchplaces.servesCocktailsplaces.servesCoffeeplaces.servesDessertsplaces.servesDinnerplaces.servesLunchplaces.servesVegetarianFoodplaces.servesWineplaces.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

इसे आज़माएं!

एपीआई एक्सप्लोरर से आपको सैंपल अनुरोध बनाने की सुविधा मिलती है, ताकि आपको एपीआई और एपीआई के विकल्पों के बारे में पता चल सके.

  1. विकल्प के तौर पर, स्टैंडर्ड पैरामीटर दिखाएं को बड़ा करें और fields पैरामीटर को फ़ील्ड मास्क पर सेट करें.
  2. अनुरोध के मुख्य हिस्से में बदलाव करें. हालांकि, ऐसा करना ज़रूरी नहीं है.
  3. लागू करें बटन को चुनें. पॉप-अप में, वह खाता चुनें जिसका इस्तेमाल आपको अनुरोध करने के लिए करना है.