הוספת מפה עם סמן
במדריך הזה מוסבר איך להוסיף לאפליקציה ל-iOS מפת Google עם סמן. הוא מתאים לאנשים עם ידע בסיסי או בינוני ב-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 options = GMSMapViewOptions() options.camera = camera options.frame = self.view.frame let mapView = GMSMapView(options: options) 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]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; options.frame = self.view.frame; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; 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 Package Manager
אפשר להתקין את ה-SDK של מפות ל-iOS באמצעות Swift Package Manager.
- מסירים את כל יחסי התלות הקיימים של 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 ומוחקים את ה-podfile.
- עוברים אל File > Add Package Dependencies (קובץ > הוספת יחסי תלות של חבילות).
- מזינים את כתובת ה-URL https://github.com/googlemaps/ios-maps-sdk, מקישים על Enter כדי למשוך את החבילה ולוחצים על Add Package.
- יכול להיות שתצטרכו לאפס את מטמון החבילות דרך File > Packages > Reset Package Cache (קובץ > חבילות > איפוס מטמון החבילות).
קבלת מפתח API והפעלת ממשקי ה-API הנדרשים
כדי להשלים את המדריך הזה, אתם צריכים מפתח Google API עם הרשאה להשתמש ב-SDK של מפות ל-iOS. כדי לקבל מפתח ולהפעיל את ה-API, לוחצים על הכפתור הבא.
שנתחיל?לפרטים נוספים, ראו קבלת מפתח API.
הוספת מפתח ה-API לאפליקציה
מוסיפים את מפתח ה-API ל-AppDelegate.swift באופן הבא:
- שימו לב שהצהרת הייבוא הבאה נוספה לקובץ:
import GoogleMaps
- עורכים את השורה הבאה ב-method
application(_:didFinishLaunchingWithOptions:), ומחליפים את YOUR_API_KEY במפתח ה-API שלכם:GMSServices.provideAPIKey("YOUR_API_KEY")
יוצרים ומריצים את האפליקציה
- מחברים מכשיר iOS למחשב, או בוחרים סימולטור מתפריט הסכימה של Xcode.
- אם אתם משתמשים במכשיר, ודאו שהשירותים מבוססי-המיקום מופעלים. אם אתם משתמשים בסימולטור, בוחרים מיקום מהתפריט Features.
- ב-Xcode, לוחצים על האפשרות Product/Run בתפריט (או על סמל ההפעלה).
- Xcode יוצר את האפליקציה ומפעיל אותה במכשיר או בסימולטור.
- אמורה להופיע מפה עם סמן במרכז סידני בחוף המזרחי של אוסטרליה, בדומה לתמונה בדף הזה.
פתרון בעיות:
- אם לא מופיעה מפה, צריך לוודא שקיבלתם מפתח API והוספתם אותו לאפליקציה, כפי שמתואר למעלה. בודקים אם יש הודעות שגיאה לגבי מפתח ה-API במסוף ניפוי הבאגים של Xcode.
- אם הגבלתם את מפתח ה-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 options = GMSMapViewOptions() options.camera = camera let mapView = GMSMapView(options: options) 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]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; 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 של מפות ל-iOS מציג את התוכן של חלון המידע. אם אתם מרוצים מפעולת ברירת המחדל, אין צורך להוסיף רכיב click listener לסמן.
מזל טוב! פיתחתם אפליקציה ל-iOS שמוצגת בה מפת Google עם סמן שמציין מיקום מסוים. למדתם גם איך להשתמש ב- SDK של מפות ל-iOS.
השלבים הבאים
מידע נוסף על אובייקט המפה ועל מה שאפשר לעשות עם סמנים.