תמונות של המקום

בחירת פלטפורמה: Android iOS JavaScript Web Service

אפשר להשתמש ב-Places SDK ל-iOS כדי לבקש תמונות של מקומות להצגה באפליקציה. התמונות שמוחזרות על ידי שירות התמונות מגיעות ממגוון מקורות, כולל בעלי עסקים ותמונות שנוספו על ידי משתמשים. כדי לאחזר תמונות של מקום מסוים, צריך לבצע את השלבים הבאים:

  1. קוראים ל-[GMSPlacesClient fetchPlaceFromPlaceId], ומעבירים מחרוזת עם מזהה מקום וקריאה חוזרת. הפעולה הזו תפעיל את הפונקציה הלא סטטית עם אובייקט GMSPlacePhotoMetadataList.
  2. באובייקט GMSPlacePhotoMetadataList, ניגשים לנכס results ובוחרים את התמונות לטעינה מהמערך.
  3. לכל GMSPlacePhotoMetadata שרוצים לטעון מהרשימה הזו, צריך לבצע קריאה ל-[GMSPlacesClient loadPlacePhoto:callback:] או ל-[GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]. הפונקציות האלה יפעילו את הפונקציה הזו עם UIImage שאפשר להשתמש בו. רוחב התמונות יכול להגיע ל-1,600 פיקסלים לכל היותר, וגם הגובה שלהן יכול להגיע ל-1,600 פיקסלים.

קוד לדוגמה

בשיטה לדוגמה הבאה, מזינים מזהה מקום ומקבלים את התמונה הראשונה ברשימה שמוחזרת. אפשר להשתמש בשיטה הזו בתור תבנית לשיטה שתיצרו באפליקציה שלכם.

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:] נשמרות במטמון גם בדיסק וגם בזיכרון על ידי מערכת טעינת כתובות ה-URL של Foundation ב-NSURLCache המשותף.

כדי להגדיר את התנהגות האחסון במטמון, אפשר לשנות את המטמון המשותף של כתובות ה-URL באמצעות [NSURLCache setSharedURLCache:] ב-method‏ application:didFinishLaunchingWithOptions: של הנציג של האפליקציה.

אם אתם לא רוצים שהאפליקציה שלכם תשתף את NSURLCache עם Places SDK ל-iOS, תוכלו ליצור NSURLCache חדש ולהשתמש בו באופן בלעדי באפליקציה, בלי להגדיר אותו כמטמון המשותף.

שיוכים

ברוב המקרים, אפשר להשתמש בתמונות של מקומות ללא שיוך, או שהשיוך הנדרש ייכלל כחלק מהתמונה. עם זאת, אם המופע המוחזר של GMSPlacePhotoMetadata כולל שיוך, עליכם לכלול את השיוך הנוסף באפליקציה בכל מקום שבו אתם מציגים את התמונה. חשוב לזכור שאפשר להקיש על הקישורים שמוצגים בזיהוי המקור. מידע נוסף זמין במאמר בנושא שיוך.

מגבלות שימוש

אחזור תמונה עולה יחידת מכסה אחת. אין מגבלות שימוש על אחזור מטא-נתונים של תמונות. מידע נוסף על שימוש בחיוב