Nearby खोज (नया)

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript वेब सेवा

आस-पास की जगहें खोजने की सुविधा (नया) के लिए किए गए अनुरोध में, एक या उससे ज़्यादा तरह की जगहों की जानकारी दी जाती है. साथ ही, यह अनुरोध, बताए गए इलाके में मिलती-जुलती जगहों की सूची दिखाता है. एक या उससे ज़्यादा डेटा टाइप बताने वाला फ़ील्ड मास्क ज़रूरी है. आस-पास खोजने की सुविधा (नया वर्शन) सिर्फ़ 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.accessibilityOptionsplaces.addressComponentsplaces.adrFormatAddressplaces.attributionsplaces.businessStatusplaces.containingPlacesplaces.displayNameplaces.formattedAddressplaces.googleMapsLinksplaces.googleMapsLinksplaces.googleMapsUriplaces.iconBackgroundColorplaces.iconMaskBaseUriplaces.idplaces.locationplaces.nameplaces.photosplaces.plusCodeplaces.primaryTypeplaces.primaryTypeDisplayNameplaces.pureServiceAreaBusinessplaces.shortFormattedAddressplaces.subDestinationsplaces.typesplaces.utcOffsetMinutesplaces.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

इसे आज़माएं!

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

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