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

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

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

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

קוד לדוגמה

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

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:] ב-application:didFinishLaunchingWithOptions: של בעל הגישה לאפליקציה .

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

שיוכים

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

מגבלות שימוש

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