הוספת מפה עם סמן
המדריך הזה מראה איך להוסיף מפת Google פשוטה עם סמן ל-iOS אפליקציה. הוא מתאים לאנשים עם ידע מתחיל או בינוני ב-Swift או Objective-C וידע כללי של Xcode. לקבלת מדריך מתקדם ליצור מפות, לקרוא את מותאמת אישית.
המדריך הזה ייצור את המפה הבאה. הסמן ממוקם ב- סידני, אוסטרליה.
קבל את הקוד
משכפלים או מורידים את מאגר הדוגמאות של מפות Google ל-iOS ב-GitHub.
לחלופין, לוחצים על הלחצן הבא כדי להוריד את קוד המקור:
Swift
import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
#import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera]; mapView.myLocationEnabled = YES; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
שנתחיל?
מנהל חבילות SWIFT
ניתן להתקין את ה-SDK של מפות Google ל-iOS באמצעות Swift Package Manager.
- יש לוודא שהסרתם את כל יחסי התלות הקיימים של Maps SDK עבור iOS.
- פותחים חלון טרמינל ומנווטים לספרייה
tutorials/map-with-marker
. -
מוודאים שסביבת העבודה של Xcode סגורה ומריצים את הפקודות הבאות:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all rm Podfile rm map-with-marker.xcworkspace
- פותחים את פרויקט ה-Xcode ומוחקים את קובץ ה-pod.
- עוברים אל קובץ > הוספת יחסי תלות של חבילה
- מזינים את הכתובת https://github.com/googlemaps/ios-maps-sdk בתור כתובת ה-URL, מקישים על Enter כדי למשוך את החבילה ולוחצים על הוספת חבילה.
- ייתכן שיהיה עליך לאפס את מטמון החבילה באמצעות האפשרות File > חבילות > איפוס המטמון של החבילה.
שימוש ב-CocoaPods
- הורדה והתקנה של Xcode גרסה 15.0 ואילך.
- אם עדיין אין לכם CocoaPods,
כדי להתקין אותו ב-macOS, מריצים את הפקודה הבאה מהטרמינל:
sudo gem install cocoapods
- עוברים לספרייה
tutorials/map-with-marker
. - מריצים את הפקודה
pod install
. הפעולה הזו תתקין את ה-SDK של מפות Google שצוין ב-Podfile
, יחד עם כל יחסי התלות. - מריצים את הפקודה
pod outdated
כדי להשוות בין גרסת ה-Pod מותקנת לבין עדכונים חדשים. אם זוהתה גרסה חדשה, צריך להריץ את הפקודהpod update
כדי לעדכן אתPodfile
ולהתקין את הגרסה העדכנית ביותר של ה-SDK. לפרטים נוספים, אפשר לעיין במדריך של CocoaPods. - פותחים (לחיצה כפולה) את map-with-marker.xcworkspace של הפרויקט.
כדי לפתוח אותו ב-Xcode. כדי לפתוח את הפרויקט, צריך להשתמש בקובץ
.xcworkspace
.
קבלת מפתח API והפעלת ממשקי ה-API הנדרשים
כדי להשלים את המדריך הזה, נדרש מפתח Google API מורשה להשתמש ב-SDK של מפות ל-iOS. לחצו על הלחצן הבא כדי לקבל מפתח ולהפעיל את ה-API.
תחילת העבודהפרטים נוספים זמינים במאמר קבלת מפתח API
הוספה של מפתח ה-API לאפליקציה
מוסיפים את מפתח ה-API ל-AppDelegate.swift
באופן הבא:
- שימו לב שהצהרת הייבוא הבאה נוספה לקובץ:
import GoogleMaps
- עריכת השורה הבאה ב
application(_:didFinishLaunchingWithOptions:)
שמחליפה את YOUR_API_KEY במפתח ה-API:GMSServices.provideAPIKey("YOUR_API_KEY")
יצירה והפעלה של אפליקציה
- מחברים מכשיר iOS למחשב, או בוחרים סימולטור מתפריט סכמת Xcode.
- אם אתם משתמשים במכשיר, מוודאים ששירותי המיקום מופעלים. אם משתמשים בסימולטור, בוחרים מיקום מתוך התכונות תפריט
- ב-Xcode, לוחצים על האפשרות Product/Run בתפריט (או על אפשרות ההפעלה) סמל הלחצן).
- Xcode יוצר את האפליקציה ולאחר מכן מפעיל אותה במכשיר או בסימולטור.
- אתם אמורים לראות מפה עם סמן במרכז סידני בחוף המזרחי של אוסטרליה, בדומה לתמונה שבדף הזה.
פתרון בעיות:
- אם מפה לא מופיעה, צריך לבדוק שקיבלת מפתח API ושהוספת אותו לאפליקציה, כפי שמתואר למעלה. לבדיקה מסוף ניפוי הבאגים של Xcode בשביל הודעות שגיאה לגבי מפתח ה-API.
- אם הגבלת את מפתח ה-API על ידי מזהה החבילה של iOS, עליך לערוך את
מפתח להוספת מזהה החבילה של האפליקציה:
com.google.examples.map-with-marker
- מוודאים שיש לכם חיבור טוב ל-Wi-Fi או ל-GPS.
- שימוש בכלים לניפוי באגים של Xcode כדי לצפות ביומנים ולנפות באגים באפליקציה.
הסבר על הקוד
- אפשר ליצור מפה ולהגדיר אותה כתצוגה ב-
viewDidLoad()
.Swift
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) view = mapView
Objective-C
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6.0]; GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera]; self.view = mapView;
- הוספת סמן למפה ב
viewDidLoad()
.Swift
// Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView
Objective-C
// Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView;
כברירת מחדל, ה-SDK של מפות Google ל-iOS מציג את תוכן המידע חלון כשהמשתמש מקיש על סמן. אין צורך להוסיף הכלי להאזנה לקליקים את הסמן אם אתם שמחים להשתמש בהתנהגות ברירת המחדל.
מזל טוב! יצרתם אפליקציה ל-iOS שמציגה מפת Google עם כדי לציין מיקום מסוים. בנוסף, למדתם איך להשתמש ב- SDK של מפות ל-iOS.
השלבים הבאים
בקישור הבא אפשר לקבל מידע נוסף על אובייקט המפה ועל מה מה אפשר לעשות בעזרת סמנים.