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

בחירת פלטפורמה: Android iOS JavaScript שירות אינטרנט

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

  1. קוראים לפונקציה [GMSPlacesClient fetchPlaceFromPlaceId], ומעבירים מחרוזת עם מזהה מקום וקריאה חוזרת (callback). הפעולה הזו תפעיל את הקריאה החוזרת עם אובייקט GMSPlacePhotoMetadataList.
  2. באובייקט GMSPlacePhotoMetadataList, ניגשים למאפיין results ובוחרים את התמונות שרוצים לטעון מהמערך.
  3. עבור כל GMSPlacePhotoMetadata כדי לטעון משיחת הרשימה הזו [GMSPlacesClient loadPlacePhoto:callback:] או [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]. הרכיבים האלה יפעילו את הקריאה החוזרת עם UIImage שניתן להשתמש בו. הרוחב או הגובה של התמונות יכולים להיות עד 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 בסיסיות בקובץ המשותף NSURLCache.

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

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

שיוכים

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

מגבלות שימוש

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