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

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

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

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

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

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

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

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

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

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

    למידע נוסף, קראו את המאמר שיוך.

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

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

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

    הפונקציות האלה זמינות רק כשמפעילים את Places SDK ל-iOS. הן לא זמינות כשמפעילים את Places SDK ל-iOS (חדש). מידע נוסף זמין במאמר בחירת גרסת ה-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);
  }
}];