आप स्थान की फ़ोटो का अनुरोध करने के लिए iOS के लिए Places SDK (नए) का उपयोग कर सकते हैं: आपके ऐप्लिकेशन में दिखाई देगा. फ़ोटो सेवा से वापस ली गई फ़ोटो जिसमें कारोबार के मालिक और उपयोगकर्ताओं के योगदान वाली फ़ोटो शामिल हैं.
फ़ोटो बिट मैप चित्र हैं जिन्हें UIImage ऑब्जेक्ट है. बिट मैप इमेज का साइज़ ज़्यादा से ज़्यादा 4800 x 4800 पिक्सल का होता है.
इमेज का अनुरोध करें
किसी जगह के लिए, ज़्यादा से ज़्यादा 10 फ़ोटो का अनुरोध किया जा सकता है:
कॉल करें
[GMSPlacesClient lookUpPhotosForPlaceID]
एक स्थान आईडी औरGMSPlacePhotoMetadataResultCallback
कॉलबैक. यह अनुरोधGMSPlacePhotoMetadataResultCallback
कॉलबैक को इसके साथ कॉल करता है:GMSPlacePhotoMetadataList
ऑब्जेक्ट है.कॉलबैक में
GMSPlacePhotoMetadataList
ऑब्जेक्ट से,results
अरे प्रॉपर्टी में वे फ़ोटो होती हैं जिनमें हर फ़ोटो कोGMSPlacePhotoMetadata
ऑब्जेक्ट है.इसे बनाने के लिए
GMSPlacePhotoMetadata
ऑब्जेक्ट का इस्तेमाल करेंGMSFetchPhotoRequest
, इसमें अनुरोध की गई इमेज का ज़्यादा से ज़्यादा साइज़ शामिल है.कलेक्शन में मौजूद हर
GMSPlacePhotoMetadata
ऑब्जेक्ट के लिए, कॉल करें[GMSPlacesClient fetchPhotoWithRequest:callback:]
GMSFetchPhotoRequest
ऑब्जेक्ट को पास कर रही हूँ. यह तरीकाGMSFetchPhotoResultCallback
UIImage के रूप में उपयोग करने योग्य बिटमैप इमेज के साथ कॉलबैक.
किसी जगह के लिए फ़ोटो का अनुरोध करने का एक और तरीका यह है कि
जगह की जानकारी (नई) के लिए अनुरोध,
फ़ील्ड सूची में GMSPlacePropertyPhotos
शामिल है. कारोबार को बढ़ाने का फ़ायदा यह है कि
स्थान विवरण कॉल है कि प्रतिक्रिया
GMSPlace
ऑब्जेक्ट में वे फ़ोटो और अन्य डेटा फ़ील्ड हो सकते हैं जिन्हें
जगह.
नमूना कोड
नीचे दिए गए उदाहरण विधि में एक स्थान आईडी लिया जाता है और इस तरीके से दिखाई गई सूची. आप अपने ऐप्लिकेशन में बनाएं.
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Request list of photos for a place placesClient.lookUpPhotos(forPlaceID: placeID) { (photos, error) in guard let photoMetadata: GMSPlacePhotoMetadata = photos?.results[0] else { return } // Request individual photos in the response list let fetchPhotoRequest = GMSFetchPhotoRequest(photoMetadata: photoMetadata, maxSize: CGSizeMake(4800, 4800)) self.client.fetchPhoto(with: fetchPhotoRequest, callback: { (photoImage: UIImage?, error: Error?) in guard let photoImage, error == nil else { print("Handle photo error: ") return } print("Display photo Image: ") } ) }
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; [placesClient lookUpPhotosForPlaceID:placeID callback: ^(GMSPlacePhotoMetadataList *list, NSError *error) { GMSPlacePhotoMetadata *photoMetadata = [list results][0]; // Request individual photos in the response list GMSFetchPhotoRequest *fetchPhotoRequest = [[GMSFetchPhotoRequest alloc] initWithPhotoMetadata:photoMetadata maxSize:CGSizeMake(4800, 4800)]; [placesClient fetchPhotoWithRequest:fetchPhotoRequest callback: ^(UIImage *_Nullable photoImage, NSError *_Nullable error) { if (error == nil) { // Display photo } }]; }];
GooglePlacesSwift
// First fetch place details // A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [ . name, .website ] ) var fetchedPlace: Place switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): fetchedPlace = place case .failure(let placesError): // Handle error } // Use the place details to fetch a photo's image. guard let photo = fetchedPlace.photos?.first else { // Handle place without photos. } let fetchPhotoRequest = FetchPhotoRequest(photo: photo, maxSize: CGSizeMake(4800, 4800)) switch await placesClient.fetchPhoto(with: fetchPhotoRequest) { case .success(let uiImage): // Handle image. case .failure(let placesError): // Handle error }
कैश मेमोरी में सेव करना
[GMSPlacesClient loadPlacePhoto:callback:]
का इस्तेमाल करके लोड की गई फ़ोटो
या [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]
इन्हें डिस्क और मेमोरी, दोनों में फ़ाउंडेशन यूआरएल लोडिंग सिस्टम की मदद से कैश मेमोरी में सेव किया जाता है
शेयर किए गए NSURLCache
में.
कैश मेमोरी में सेव होने के तरीके को कॉन्फ़िगर करने के लिए, शेयर किए गए यूआरएल की कैश मेमोरी को बदला जा सकता है. इसके लिए,
[NSURLCache setSharedURLCache:]
आपके आवेदन के प्रतिनिधि के application:didFinishLaunchingWithOptions:
में
तरीका.
अगर आप नहीं चाहते कि आपका ऐप्लिकेशन, NSURLCache
को
iOS के लिए Places SDK टूल का इस्तेमाल करके, नया NSURLCache
बनाया जा सकता है और इसका इस्तेमाल किया जा सकता है
अपने ऐप्लिकेशन में उसे शेयर की गई कैश मेमोरी के तौर पर सेट किए बिना भी कर सकते हैं.
एट्रिब्यूशन
ज़्यादातर मामलों में, स्थान फ़ोटो का उपयोग एट्रिब्यूशन के बिना किया जा सकता है या
आवश्यक एट्रिब्यूशन शामिल है. हालांकि, यदि
GMSPlacePhotoMetadata
इंस्टेंस में सभी शामिल हैं
attributions
या
authorAttribution
,
आपको अपने ऐप्लिकेशन में इन एट्रिब्यूशन को शामिल करना होगा,
इमेज. दस्तावेज़ यहां देखें
एट्रिब्यूशन.