जगह की फ़ोटो

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

आप अपने ऐप्लिकेशन में स्थान फ़ोटो दिखाने का अनुरोध करने के लिए iOS के लिए Places SDK का उपयोग कर सकते हैं. फ़ोटो सेवा से वापस की जाने वाली फ़ोटो कई तरह के स्रोतों से ली जाती हैं. इनमें कारोबार के मालिक और उपयोगकर्ता के योगदान वाली फ़ोटो शामिल हैं. किसी जगह की फ़ोटो वापस पाने के लिए, आपको यह तरीका अपनाना होगा:

  1. [GMSPlacesClient fetchPlaceFromPlaceId] को कॉल करें और जगह के आईडी और कॉलबैक वाली स्ट्रिंग पास करें. यह कॉलबैक को, GMSPlacePhotoMetadataList ऑब्जेक्ट के साथ कॉल करेगा.
  2. GMSPlacePhotoMetadataList ऑब्जेक्ट पर, results प्रॉपर्टी को ऐक्सेस करें और अरे से लोड करने के लिए फ़ोटो चुनें.
  3. इस सूची से लोड करने के लिए, हर GMSPlacePhotoMetadata के लिए, [GMSPlacesClient loadPlacePhoto:callback:] या [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] को कॉल करें. ये कॉलबैक को, इस्तेमाल करने लायक यूज़र इंटरफ़ेस (यूआई) इमेज के साथ कॉल करेंगे. फ़ोटो की चौड़ाई ज़्यादा से ज़्यादा 1600 पिक्सल हो सकती है.

नमूना कोड

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

Swift

// Specify the place data types to return (in this case, just photos).
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.photos.rawValue))!

placesClient?.fetchPlace(fromPlaceID: "INSERT_PLACE_ID_HERE",
                         placeFields: fields,
                         sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    // Get the metadata for the first photo in the place photo metadata list.
    let photoMetadata: GMSPlacePhotoMetadata = place.photos![0]

    // Call loadPlacePhoto to display the bitmap and attribution.
    self.placesClient?.loadPlacePhoto(photoMetadata, callback: { (photo, error) -> Void in
      if let error = error {
        // TODO: Handle the error.
        print("Error loading photo metadata: \(error.localizedDescription)")
        return
      } else {
        // Display the first image and its attributions.
        self.imageView?.image = photo;
        self.lblText?.attributedText = photoMetadata.attributions;
      }
    })
  }
})

Objective-C

// Specify the place data types to return (in this case, just photos).
GMSPlaceField fields = (GMSPlaceFieldPhotos);

NSString *placeId = @"INSERT_PLACE_ID_HERE";

[_placesClient fetchPlaceFromPlaceID:placeId placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    GMSPlacePhotoMetadata *photoMetadata = [place photos][0];
    [self->_placesClient loadPlacePhoto:photoMetadata callback:^(UIImage * _Nullable photo, NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"Error loading photo metadata: %@", [error localizedDescription]);
        return;
      } else {
        // Display the first image and its attributions.
        self->imageView.image = photo;
        self->lblText.attributedText = photoMetadata.attributions;
      }
    }];
  }
}];

कैश मेमोरी में सेव करना

[GMSPlacesClient loadPlacePhoto:callback:] या [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] का इस्तेमाल करके लोड की गई फ़ोटो, डिस्क और मेमोरी, दोनों में कैश मेमोरी में सेव की जाती हैं. ऐसा, शेयर किए गए NSURLCache के फ़ाउंडेशन यूआरएल लोडिंग सिस्टम से किया जाता है.

कैश मेमोरी में डेटा सेव करने की प्रोसेस को कॉन्फ़िगर करने के लिए, शेयर किए गए यूआरएल की कैश मेमोरी को बदला जा सकता है. इसके लिए, ऐप्लिकेशन प्रतिनिधि के application:didFinishLaunchingWithOptions: तरीके में मौजूद [NSURLCache setSharedURLCache:] का इस्तेमाल करें.

अगर आप नहीं चाहते कि आपका ऐप्लिकेशन, iOS के लिए स्थल SDK के साथ NSURLCache शेयर न करे, तो आप एक नया NSURLCache बना सकते हैं और इसे शेयर की गई कैश मेमोरी के रूप में सेट किए बिना अपने ऐप्लिकेशन में इस्तेमाल कर सकते हैं.

एट्रिब्यूशन

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

इस्तेमाल करने की सीमा

इमेज वापस पाने में एक यूनिट की लागत आती है. फ़ोटो मेटाडेटा पाने के लिए, इस्तेमाल की कोई सीमा नहीं है. इस्तेमाल और बिलिंग के बारे में ज़्यादा पढ़ें.