העברה לפרטי מקום (חדש)

‫Places API (מדור קודם) תומך ב-Place Details (מדור קודם). אם אתם מכירים את Places API (מדור ישן), כדאי לדעת שב-Place Details (חדש) בוצעו השינויים הבאים:

  • משתמש במודל תמחור חדש. מידע על התמחור של כל ממשקי ה-API זמין במאמר שימוש וחיוב.

  • חובה לבצע אנונימיזציה של השדה. צריך לציין אילו שדות רוצים להחזיר בתגובה. אין רשימת ברירת מחדל של שדות שמוחזרים. אם לא מציינים את הרשימה הזו, השיטות מחזירות שגיאה.

  • כדי לשלוח בקשה, מפעילים את השיטה החדשה GMSPlacesClient fetchPlaceWithRequest:.

  • מעבירים לבקשה:

    • מופע של המחלקה החדשה GMSFetchPlaceRequest שמגדירה את כל פרמטרים של הבקשה, כמו מזהה המקום וטוקן הסשן.

    • קריאה חוזרת (callback) מסוג GMSPlaceResultCallback לטיפול בתגובה.

  • התשובה מכילה מופע של GMSPlace עם פרטים על המקום. הערכים במאפיין types של מופע GMSPlace מוגדרים עכשיו על ידי Table A ו-Table B.

  • מופע התגובה GMSPlace מכיל את המאפיין החדש reviews מסוג GMSPlaceReview. אם האפליקציה מציגה מידע שהתקבל מהGMSPlaceמופע, כמו תמונות וביקורות, היא צריכה להציג גם את הקרדיטים הנדרשים.

    מידע נוסף מופיע במאמר בנושא שיוכים.

  • מופע התגובה GMSPlace מכיל את פונקציות החברים הבאות:

    • isOpen מחשב אם מקום מסוים פתוח בשעה שצוינה.

    • isOpenAtDate מחשבת אם מקום מסוים פתוח בתאריך נתון.

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

דוגמה לבקשה

כשמשתמשים ב-Place Details (חדש), שולחים בקשה ומעבירים את כל הפרמטרים במופע GMSFetchPlaceRequest. בדוגמה הזו נעשה שימוש גם במסכת שדות, כך שהתגובה כוללת רק את השם לתצוגה ואת כתובת האתר של המקום:

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields, sessionToken: nil)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];