המיקום הנוכחי

בחירת פלטפורמה: Android iOS

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

  1. בקשה להרשאת מיקום
  2. מגבלות שימוש
  3. קבלת המיקום הנוכחי
  4. הצגת פרטי ייחוס (Attribution) באפליקציה שלכם

נשלחה בקשה להרשאת מיקום

אם האפליקציה משתמשת GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, האפליקציה שלך חייבת לבקש הרשאה להשתמש בשירותי המיקום. מוסיפים את המפתח של NSLocationWhenInUseUsageDescription למכשיר Info.plist כדי להגדיר את המחרוזת שמיידעת את המשתמש למה אתם צריכים את המיקום שירותים שונים. לדוגמה:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

אם אתה רוצה להתקשר findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: כאשר האפליקציה נמצאת ברקע, בלי להפעיל תיבת דו-שיח לאישור, את השלבים הבאים לפני ביצוע השיחה:

  1. מוסיפים את המפתח NSLocationAlwaysUsageDescription לקובץ Info.plist.
  2. קוראים לפונקציה requestAlwaysAuthorization בכל מופע של CLLocationManager לפני קריאה לשיטה.

כך מבקשים אישור מ-CLLocationManager:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

המערכת מקבלת את המיקום הנוכחי

כדי למצוא את העסק המקומי או מקום אחר שבו המכשיר נמצא כרגע נמצא, שיחה GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: כלול את הפרמטרים הבאים:

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

השדות תואמים לתוצאות של חיפוש מקום, והם מחולקים לשלוש קטגוריות חיוב: בסיסי, יצירת קשר ואווירה. שדות בסיסיים מחויבים לפי התעריף הבסיסי, ולא צוברים חיובים נוספים חיובים. החיוב בשדות אנשי קשר ושדה אווירה הוא גבוה יותר. אפשר לקבל מידע נוסף על אופן החיוב של בקשות לנתוני מקום, ראה שימוש וחיוב.

ה-API מפעיל את שיטת הקריאה החוזרת שצוינה, ומחזיר מערך של GMSPlaceLikelihood אובייקטים.

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

דוגמת הקוד הבאה מאחזרת את רשימת המקומות שבהם המכשיר את המיקום של כל מקום, ומציגה את השם והסבירות של כל מקום.

Swift

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
                                          UInt(GMSPlaceField.placeID.rawValue))!
placesClient?.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: fields, callback: {
  (placeLikelihoodList: Array<GMSPlaceLikelihood>?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }

  if let placeLikelihoodList = placeLikelihoodList {
    for likelihood in placeLikelihoodList {
      let place = likelihood.place
      print("Current Place name \(String(describing: place.name)) at likelihood \(likelihood.likelihood)")
      print("Current PlaceID \(String(describing: place.placeID))")
    }
  }
})

Objective-C

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
[_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:fields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (likelihoods != nil) {
    for (GMSPlaceLikelihood *likelihood in likelihoods) {
      GMSPlace *place = likelihood.place;
      NSLog(@"Current place name: %@", place.name);
      NSLog(@"Place ID: %@", place.placeID);
    }
  }
}];

הערות לגבי ערכי הסבירות:

  • הסבירות מספקת הסתברות יחסית של המקום הוא ההתאמה הטובה ביותר ברשימת המקומות שהוחזרו בקשה אחת. לא ניתן להשוות בין הסבירות של בקשות שונות.
  • ערך הסבירות יהיה בין 0 ל-1.0.
  • סכום הסבירות במערך מוחזר של GMSPlaceLikelihood אובייקטים הוא תמיד קטן מ-1.0 או שווה לו. שימו לב שהסכום הוא לא או 1.0.

לדוגמה, כדי לייצג סבירות של 55% שהמקום הנכון הוא מקום א', ובסבירות של 35% שזה מקום ב', במערך הסבירות יש שני איברים: מקום A עם סבירות 0.55 ו- מקום B עם הסבירות של 0.35.

הצגת פרטי ייחוס (Attribution) באפליקציה שלכם

מתי האפליקציה מציגה מידע שהתקבל מ GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, האפליקציה חייב להציג גם קרדיטים. מידע נוסף על שיוכים.