תמונות של המקום (קודם)

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

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

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

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

שיוכים

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

מכסות שימוש

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