जगह की जानकारी (नई)

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

iOS के लिए Places SDK (नया वर्शन), आपके ऐप्लिकेशन को जगहों के बारे में ज़्यादा जानकारी देता है. इसमें जगह का नाम और पता, अक्षांश/देशांतर निर्देशांक के तौर पर बताई गई भौगोलिक जगह, जगह का टाइप (जैसे, नाइट क्लब, पालतू जानवरों का स्टोर, संग्रहालय) वगैरह शामिल है. किसी खास जगह के लिए यह जानकारी ऐक्सेस करने के लिए, जगह का आईडी इस्तेमाल किया जा सकता है. यह एक ऐसा आइडेंटिफ़ायर है जो किसी जगह की खास पहचान करता है.

जगह की जानकारी पाना

GMSPlace क्लास में किसी खास जगह की जानकारी होती है. इसमें जगह के डेटा फ़ील्ड (नया) में दिखाए गए सभी डेटा फ़ील्ड शामिल होते हैं. GMSPlacesClient fetchPlaceWithRequest: को कॉल करके, GMSFetchPlaceRequest ऑब्जेक्ट और GMSPlaceResultCallback टाइप का कॉलबैक तरीका पास करके, GMSPlace ऑब्जेक्ट पाएं.

GMSFetchPlaceRequest ऑब्जेक्ट में यह जानकारी शामिल होती है:

  • (ज़रूरी) जगह का आईडी, वह यूनीक आईडी होता है जिसका इस्तेमाल करके, Google Places के डेटाबेस और Maps पर किसी जगह की पहचान की जाती है.
  • (ज़रूरी) GMSPlace ऑब्जेक्ट में दिखाए जाने वाले फ़ील्ड की सूची. इसे GMSPlaceProperty के मुताबिक, फ़ील्ड मास्क भी कहा जाता है. अगर आपने फ़ील्ड की सूची में कम से कम एक फ़ील्ड नहीं बताया है या फ़ील्ड की सूची को छोड़ दिया है, तो कॉल में गड़बड़ी का मैसेज दिखेगा.
  • (ज़रूरी नहीं) जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया जाने वाला क्षेत्र कोड.
  • (ज़रूरी नहीं) ऑटोमैटिक भरने की सुविधा (नया) के सेशन को खत्म करने के लिए इस्तेमाल किया जाने वाला सेशन टोकन.

जगह की जानकारी का अनुरोध करना

इस उदाहरण में, नीचे दिए गए पैरामीटर को पास करके, आईडी के हिसाब से कोई जगह मिलती है:

  • ChIJV4k8_9UodTERU5KXbkYpSYs का लोकेशन आईडी.
  • जगह का नाम और वेबसाइट का यूआरएल दिखाने के लिए फ़ील्ड की सूची.
  • नतीजे को मैनेज करने के लिए GMSPlaceResultCallback.

एपीआई, तय किए गए कॉलबैक तरीके को कॉल करता है. इसके लिए, वह GMSPlace ऑब्जेक्ट को पास करता है. अगर जगह नहीं मिली, तो जगह का ऑब्जेक्ट शून्य होगा.

Places Swift SDK

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];

जगह की जानकारी का जवाब

जगह की जानकारी, GMSPlace ऑब्जेक्ट दिखाती है. इसमें जगह की जानकारी होती है. फ़ील्ड की सूची में बताए गए फ़ील्ड ही GMSPlace ऑब्जेक्ट में अपने-आप भर जाते हैं.

खुले होने की स्थिति देखना

GMSPlacesClient ऑब्जेक्ट में isOpenWithRequest (Swift में isOpenRequest और GooglePlacesSwift में isPlaceOpenRequest) नाम का एक सदस्य फ़ंक्शन होता है. यह फ़ंक्शन, कॉल में बताए गए समय के आधार पर यह बताता है कि जगह फ़िलहाल खुली है या नहीं.

यह तरीका, GMSPlaceIsOpenWithRequest टाइप का एक आर्ग्युमेंट लेता है, जिसमें ये शामिल होते हैं:

  • GMSPlace ऑब्जेक्ट या जगह का आईडी बताने वाली स्ट्रिंग. ज़रूरी फ़ील्ड के साथ जगह का ऑब्जेक्ट बनाने के बारे में ज़्यादा जानने के लिए, जगह की जानकारी देखें.
  • ज़रूरी नहीं, NSDate (Obj-C) या Date (Swift) ऑब्जेक्ट, जिसमें वह समय बताया गया हो जिसकी आपको जांच करनी है. अगर कोई समय तय नहीं किया गया है, तो डिफ़ॉल्ट रूप से 'अभी' सेट होता है.
  • जवाब को मैनेज करने का GMSPlaceOpenStatusResponseCallback तरीका.
  • >

GMSPlaceIsOpenWithRequest तरीके के लिए, GMSPlace ऑब्जेक्ट में ये फ़ील्ड सेट करने होंगे:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

अगर Place ऑब्जेक्ट में ये फ़ील्ड नहीं दिए गए हैं या आपने कोई प्लेस आईडी पास किया है, तो उन्हें फ़ेच करने के लिए, यह तरीका GMSPlacesClient GMSFetchPlaceRequest: का इस्तेमाल करता है.

isOpenWithRequest response

isOpenWithRequest, GMSPlaceIsOpenResponse ऑब्जेक्ट दिखाता है. इसमें status नाम की बूलियन वैल्यू होती है. इससे पता चलता है कि कारोबार खुला है, बंद है या उसका स्टेटस पता नहीं है.

भाषा अगर खाता खुला है, तो वैल्यू कारोबार बंद होने पर दिखने वाली वैल्यू अगर स्थिति की जानकारी नहीं है, तो वैल्यू
Places Swift true false nil
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown

isOpenWithRequest के लिए बिलिंग

  • GMSPlacePropertyUTCOffsetMinutes और GMSPlacePropertyBusinessStatus फ़ील्ड के लिए, बुनियादी डेटा SKU के तहत शुल्क लिया जाता है. कारोबार के खुले होने के बाकी समय के लिए, जगह की जानकारी वाले एंटरप्राइज़ SKU के तहत शुल्क लिया जाता है.
  • अगर आपके GMSPlace ऑब्जेक्ट में, पिछले अनुरोध से ये फ़ील्ड पहले से मौजूद हैं, तो आपसे फिर से शुल्क नहीं लिया जाएगा.

उदाहरण: GMSPlaceIsOpenWithRequest अनुरोध करना

नीचे दिए गए उदाहरण में, किसी मौजूदा GMSPlace ऑब्जेक्ट में GMSPlaceIsOpenWithRequest को शुरू करने का तरीका बताया गया है.

Places Swift SDK

        let isOpenRequest = IsPlaceOpenRequest(place: place)
        switch await placesClient.isPlaceOpen(with: isOpenRequest) {
          case .success(let isOpenResponse):
            switch isOpenResponse.status {
              case true:
                // Handle open
              case false:
                // Handle closed
              case nil:
                // Handle unknown
          case .failure(let placesError):
            // Handle error
        }
        

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];

          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }

            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

ज़रूरी पैरामीटर

ज़रूरी पैरामीटर तय करने के लिए, GMSFetchPlaceRequest ऑब्जेक्ट का इस्तेमाल करें.

जगह का आईडी

iOS के लिए Places SDK में इस्तेमाल किया जाने वाला जगह का आईडी, वही आइडेंटिफ़ायर है जो Places API, Android के लिए Places SDK, और Google के अन्य एपीआई में इस्तेमाल किया जाता है. हर प्लेस आईडी, सिर्फ़ एक जगह का रेफ़रंस दे सकता है. हालांकि, किसी एक जगह के लिए एक से ज़्यादा प्लेस आईडी हो सकते हैं.

कुछ स्थितियों में, किसी जगह को नया प्लेस आईडी मिल सकता है. उदाहरण के लिए, ऐसा तब हो सकता है, जब कोई कारोबार किसी नई जगह पर शिफ़्ट हो जाए.

किसी जगह का आईडी डालकर अनुरोध करने पर, आपको भरोसा रहेगा कि जवाब में आपको हमेशा वही जगह दिखेगी (अगर वह जगह अब भी मौजूद है). हालांकि, ध्यान दें कि जवाब में ऐसा प्लेस आईडी हो सकता है जो आपके अनुरोध में दिए गए आईडी से अलग हो.

फ़ील्ड की सूची

किसी जगह की जानकारी का अनुरोध करते समय, आपको फ़ील्ड मास्क के तौर पर, जगह के लिए GMSPlace ऑब्जेक्ट में दिखाए जाने वाले डेटा की जानकारी देनी होगी. फ़ील्ड मास्क तय करने के लिए, GMSPlaceProperty से GMSFetchPlaceRequest ऑब्जेक्ट में वैल्यू का कलेक्शन पास करें. फ़ील्ड मास्किंग, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जा सकता है कि आपने ज़रूरत से ज़्यादा डेटा का अनुरोध न किया हो. इससे, प्रोसेसिंग में लगने वाले समय और बिलिंग शुल्क से बचा जा सकता है.

इनमें से एक या उससे ज़्यादा फ़ील्ड डालें:

इस उदाहरण में, दो फ़ील्ड वैल्यू की सूची दी गई है. इससे यह पता चलता है कि अनुरोध से मिले GMSPlace ऑब्जेक्ट में name और placeID फ़ील्ड शामिल हैं:

Places Swift SDK

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

ज़रूरी नहीं पैरामीटर

वैकल्पिक पैरामीटर की जानकारी देने के लिए, GMSFetchPlaceRequest ऑब्जेक्ट का इस्तेमाल करें.

regionCode

रिस्पॉन्स को फ़ॉर्मैट करने के लिए इस्तेमाल किया जाने वाला क्षेत्र कोड. इसे दो वर्णों वाले CLDR कोड की वैल्यू के तौर पर तय किया जाता है. इस पैरामीटर का असर, खोज के नतीजों पर भी पड़ सकता है. कोई डिफ़ॉल्ट वैल्यू नहीं है.

अगर जवाब में मौजूद पते के फ़ील्ड में देश का नाम, इलाके के कोड से मेल खाता है, तो पते से देश का कोड हटा दिया जाता है.

ज़्यादातर CLDR कोड, ISO 3166-1 कोड से मिलते-जुलते होते हैं. हालांकि, कुछ कोड अलग होते हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि उसका आईएसओ 3166-1 कोड "gb" है. तकनीकी तौर पर, यह कोड "यूनाइटेड किंगडम ऑफ़ ग्रेट ब्रिटेन ऐंड नॉर्दन आयरलैंड" इकाई के लिए है. लागू कानून के आधार पर, इस पैरामीटर से नतीजों पर असर पड़ सकता है.

sessionToken

सेशन टोकन, उपयोगकर्ता से जनरेट हुई स्ट्रिंग होती हैं. ये ऑटोकंप्लीट (नया) कॉल को "सेशन" के तौर पर ट्रैक करती हैं. ऑटोमैटिक भरने की सुविधा (नया वर्शन), बिलिंग के मकसद से उपयोगकर्ता की ऑटोमैटिक भरने की खोज की क्वेरी और जगह चुनने के चरणों को अलग सेशन में ग्रुप करने के लिए, सेशन टोकन का इस्तेमाल करती है. ऑटोकंप्लीट (नया) कॉल के बाद, जगह की जानकारी (नया) कॉल में सेशन टोकन भेजे जाते हैं. ज़्यादा जानकारी के लिए, सेशन टोकन देखें.

अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाना

जब आपका ऐप्लिकेशन GMSPlacesClient से मिली जानकारी दिखाता है, जैसे कि फ़ोटो और समीक्षाएं, तो ऐप्लिकेशन को ज़रूरी क्रेडिट भी दिखाना होगा.

उदाहरण के लिए, GMSPlacesClient ऑब्जेक्ट की reviews प्रॉपर्टी में, ज़्यादा से ज़्यादा पांच GMSPlaceReview ऑब्जेक्ट का कलेक्शन होता है. हर GMSPlaceReview ऑब्जेक्ट में एट्रिब्यूशन और लेखक के एट्रिब्यूशन हो सकते हैं. अगर आपने अपने ऐप्लिकेशन में समीक्षा दिखाई है, तो आपको कोई एट्रिब्यूशन या लेखक का एट्रिब्यूशन भी दिखाना होगा.

ज़्यादा जानकारी के लिए, एट्रिब्यूशन के बारे में दस्तावेज़ देखें.