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

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

  • משתמש במודל תמחור חדש. למידע על התמחור של כל ממשקי ה-API, ראו תמחור של Places SDK ל-iOS (חדש).

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

  • כדי לשלוח בקשה, צריך לבצע קריאה ל-method החדש GMSPlacesClient fetchPlaceWithRequest:.

  • מעבירים את הבקשה:

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

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

  • התשובה מכילה מופע GMSPlace שמכיל פרטים על המקום. הערכים במאפיין types של המכונה GMSPlace מוגדרים עכשיו לפי טבלה א' וטבלה ב.

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

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

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

    • isOpen מחשב אם המקום פתוח בפרק זמן נתון.

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

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

דוגמה לבקשה

באפשרות Place Details (New), שולחים בקשה ומעבירים את כל הפרמטרים במכונה 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);
  }
}];