באמצעות Places SDK ל-iOS, אפשר לגלות את המיקום שבו המכשיר נמצא כרגע. כלומר, המקום במיקום הנוכחי של המכשיר. דוגמאות למקומות: עסקים מקומיים, נקודות עניין ומיקומים גיאוגרפיים.
שליחת בקשה להרשאת מיקום
אם האפליקציה שלכם משתמשת ב-
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
, היא צריכה לבקש הרשאה לשימוש בשירותי המיקום. מוסיפים את המפתח NSLocationWhenInUseUsageDescription
לקובץ Info.plist
כדי להגדיר את המחרוזת, כדי ליידע את המשתמשים למה הם צריכים את שירותי המיקום. לדוגמה:
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
אם רוצים להתקשר אל
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
כשהאפליקציה פועלת ברקע, בלי להציג תיבת דו-שיח לאישור, צריך לבצע את הפעולות הבאות לפני ביצוע השיחה:
- מוסיפים את המפתח
NSLocationAlwaysUsageDescription
לקובץInfo.plist
. - צריך לקרוא ל-
requestAlwaysAuthorization
בכל מופע שלCLLocationManager
לפני שמפעילים את השיטה.
שולחים בקשת הרשאה ל-CLLocationManager
באופן הבא:
Swift
locationManager.requestAlwaysAuthorization()
Objective-C
[self.locationManager requestAlwaysAuthorization];
המערכת מקבלת את המיקום הנוכחי
כדי למצוא את העסק המקומי או מקום אחר שבו המכשיר נמצא כרגע
צריך להתקשר למספר
GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
. צריך לכלול את הפרמטרים הבאים:
GMSPlaceField
אחד או יותר, שמציינים אילו סוגי נתונים יוחזרו. אם משמיטים את הפרמטר הזה, כל השדות האפשריים יוחזרו ותוכלו לקבל חיוב בהתאם. המדיניות הזו חלה רק על בקשות לפרטים של מקומות.- שיטת קריאה חוזרת לטיפול בתוצאות.
השדות תואמים לתוצאות של חיפוש מקום, והם מחולקים לשלוש קטגוריות חיוב: בסיסי, יצירת קשר ואטמוספירה. שדות בסיסיים מחויבים לפי התעריף הבסיסי, ללא חיובים נוספים. השדות 'אנשי קשר' ו'אטמוספירה' מחויבים בשיעור גבוה יותר. למידע נוסף על החיוב על בקשות לנתוני מקומות, קראו את המאמר שימוש וחיובים.
ה-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% שהוא מקום ב', מערך הסבירות כולל שני חברים: מקום א' עם הסבירות 0.55 ומקום ב' עם הסבירות 0.35.
הצגת שיוך באפליקציה
כשבאפליקציה מוצג מידע שהתקבל מ-GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
, האפליקציה
צריכה להציג גם ייחוסים. מידע נוסף על שיוך (Attribution)