מפות Google מיוצגות ב-API על ידי המחלקה GMSMapView
, מחלקה של UIView
. המפה היא האובייקט המשמעותי ביותר ב-SDK של מפות Google ל-iOS, והיא מספקת את השיטות הנדרשות להוספה, להסרה ולניהול של אובייקטים אחרים כמו סמנים וקווים פוליגוניים.
מבוא
ה-SDK של מפות Google ל-iOS מאפשר להציג מפת Google באפליקציה ל-iOS. המראה של המפות האלה זהה לזה של המפות שמוצגות באפליקציית מפות Google ל-iOS, וערכת ה-SDK חושפת הרבה מהתכונות האלה.
בנוסף לפונקציונליות המיפוי, ה-API תומך גם במגוון אינטראקציות שתואמות למודל של ממשק המשתמש ב-iOS. לדוגמה, אפשר להגדיר אינטראקציות עם מפה על ידי הגדרת המשיבים שמגיבים לתנועות של משתמשים, כמו הקשה והקשה כפולה.
מחלקת המפתח בעבודה עם אובייקט מפה היא המחלקה GMSMapView
.
GMSMapView
מטפל בפעולות הבאות באופן אוטומטי:
- מתבצע חיבור לשירות מפות Google.
- מתבצעת הורדה של קטעי המפה.
- המשבצות מוצגות במסך המכשיר.
- הצגת פקדים שונים, כמו הזזה וזום.
- תגובה לתנועות הזזה ושינוי מרחק התצוגה על ידי הזזת המפה ושינוי מרחק התצוגה.
- תגובה לשתי תנועות אצבע על ידי הטיית זווית הצפייה של המפה.
בנוסף לפעולות האוטומטיות האלה, אפשר לשלוט בהתנהגות ובמראה של המפה באמצעות המאפיינים וה-methods שנחשפים על ידי המחלקה GMSMapView
. GMSMapView
מאפשר להוסיף ולהסיר סמנים, שכבות-על של פני השטח וקווים פוליגוניים, לשנות את סוג המפה שמוצגת ולשלוט במה שמוצג במפה באמצעות המחלקה GMSCameraPosition
.
בניית מפות באמצעות SwiftUI
SwiftUI מציע דרך נוספת ליצירת ממשק משתמש באמצעות גישה הצהרתית. פשוט אומרים ל-SwiftUI איך רוצים שהתצוגה תיראה יחד עם כל המצבים השונים, והמערכת עושה את כל השאר. SwiftUI מטפל בעדכון התצוגה בכל פעם שהמצב הבסיסי משתנה בעקבות אירוע או פעולת משתמש.
ה-SDK של מפות Google ל-iOS מבוסס על UIKit
ואין בו תצוגה שתואמת ל-SwiftUI. כדי להוסיף מפות ב-SwiftUI, נדרשת תאימות ל-UIViewRepresentable
או ל-UIViewControllerRepresentable
. מידע נוסף זמין במאמר הוספת מפה לאפליקציה ל-iOS ב-Codelab באמצעות SwiftUI.
הוספת מפה
השלבים הבסיסיים להוספת מפה הם:
כדי לקבל את ה-SDK, לקבל מפתח API ולהוסיף את ה-frameworks הנדרשות, צריך לבצע את השלבים הבאים:
ב-
AppDelegate
, עליכם לספק את מפתח ה-API ל-methodprovideAPIKey:
של המחלקה ב-GMSServices
.יצירה או עדכון של
ViewController
. אם המפה מוצגת כשבקר התצוגה הופך לגלוי, חשוב ליצור אותה באמצעות ה-methodviewDidLoad
.באתחול תצוגת המפה, צריך להגדיר את אפשרויות התצורה בעזרת
GMSMapViewOptions
. המאפיינים כוללים אתframe
,camera
,mapID
,backgroundColor
אוscreen
.מגדירים את המאפיין
camera
של אפשרויות המפה עם אובייקטGMSCameraPosition
. מציין את רמת המרכז והזום של המפה.יוצרים מחלקה
GMSMapView
ויוצרים מחלקה באמצעות השיטהGMSMapView
options:
. אם המפה הזו משמשת כתצוגה בלבד לבקרת התצוגות, ניתן להשתמש בערך ברירת המחדלCGRectZero
של אפשרות המפהframe
בתור התצוגהframe
— שינוי גודל המפה משתנה באופן אוטומטי.מגדירים את האובייקט
GMSMapView
כתצוגה של בקר התצוגה. לדוגמה,self.view = mapView;
.
בדוגמה הבאה מוסיפים לאפליקציה מפה, שנמצאת באזור הדאונטאון של סינגפור.
Swift
import GoogleMaps class MapObjects : UIViewController { override func viewDidLoad() { super.viewDidLoad() let options = GMSMapViewOptions() options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12) options.frame = self.view.bounds; let mapView = GMSMapView(options:options) self.view = mapView } }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:1.285 longitude:103.848 zoom:12]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; self.view = mapView; }
לאחר ביצוע השלבים האלה, תוכלו להגדיר את האובייקט GMSMapView
עוד יותר.
מה השלב הבא
לאחר ביצוע השלבים האלו, אפשר לקבוע את הגדרות המפה.