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

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

ניתן להשתמש ב-Place 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 של היסודות ב-NSURLCache המשותף.

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

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

שיוכים

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

מגבלות שימוש

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