आस-पास की जगहों की जानकारी (नया)

प्लैटफ़ॉर्म चुनें: 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

आस-पास की जगहों की जानकारी (नया) के जवाब

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

  2. इसके बाद, अनुरोध पैरामीटर में बदलाव करें. हालांकि, ऐसा करना ज़रूरी नहीं है.

  3. लागू करें बटन चुनें. डायलॉग बॉक्स में, वह खाता चुनें जिसका इस्तेमाल करके आपको अनुरोध करना है.

  4. एपीआई एक्सप्लोरर पैनल में, एपीआई एक्सप्लोरर विंडो को बड़ा करने के लिए, फ़ुलस्क्रीन आइकॉन फ़ुलस्क्रीन चुनें.