Places SDK ל-iOS תומך ב-Place Photo (Legacy). אם אתם מכירים את Place Photo (Legacy), Place Photo (New) כולל את השינויים הבאים:
משתמש במודל תמחור חדש. מידע על תמחור של כל ממשקי ה-API זמין במאמר תמחור של Places SDK ל-iOS (חדש).
ב-Place Photo (Legacy) הגודל המקסימלי של התמונה היה 1,600 על 1,600 פיקסלים. תמונת מקום (חדש) תומכת בגדלים של עד 4,800 x 4,800 פיקסלים.
כדי לשלוח בקשה, מתקשרים לשיטה החדשה
GMSPlacesClient fetchPhotoWithRequest:callback:
.מעבירים לבקשה:
מופע של המחלקה החדשה
GMSFetchPhotoRequest
שמגדירה את כל פרמטרי הבקשה, כולל הגודל המקסימלי של התמונה.קריאה חוזרת (callback) מסוג
GMSPlacePhotoMetadataResultCallback
לטיפול בתגובה.
כל תמונה מיוצגת על ידי מופע של
GMSPlacePhotoMetadata
. ב-Places SDK ל-iOS (חדש), המופעGMSPlacePhotoMetadata
מכיל שדה חדשauthorAttribution
שמיוצג על ידי המחלקה החדשהGMSPlaceAuthorAttribution
.אם המופע
GMSPlacePhotoMetadata
שמוחזר כולל אתattributions
או אתauthorAttribution
, אתם צריכים לכלול את הקרדיטים האלה באפליקציה בכל מקום שבו התמונה מוצגת. מידע נוסף זמין במאמר בנושא שיוך.
דוגמה לבקשה
בדוגמה הבאה, הפונקציה מקבלת מזהה מקום ומחזירה את התמונה הראשונה ברשימה. אתם יכולים להשתמש בשיטה הזו כתבנית לשיטה שתיצרו באפליקציה שלכם.
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 } }]; }];