
בדף הזה מוסבר איך להוסיף מפה תלת-ממדית בסיסית לאפליקציה ל-iOS באמצעות Maps 3D SDK ל-iOS. ההוראות בדף הזה מבוססות על ההנחה שכבר ביצעתם את השלבים בדף הגדרה, ושיש לכם:
- פרויקט ב-Google Cloud שבו מופעל Maps 3D SDK ל-iOS
- מפתח API ל-Maps 3D SDK ל-iOS
- Xcode בגרסה 16.0 ואילך, עם חבילת Maps 3D SDK ל-iOS.
למידע נוסף על הדרישות המוקדמות האלה, ראו הגדרה.
חלק 1: יצירת אפליקציה בסיסית ב-SwiftUI
- יוצרים אפליקציה חדשה ב-Xcode.
- מגדירים את שם המוצר בתור
Hello3DWorld, ואת מזהה הארגון בתורcom.example. שם החבילה צריך להיותcom.example.Hello3DWorld. - בוחרים בממשק SwiftUI.
- מוסיפים את ספריית מפות Google בתלת-ממד לאפליקציה. הוראות מפורטות זמינות בקטע "הגדרה".
חלק 2: הוספת מפה
פותחים את הקובץ
ContentView.swift. זו נקודת הכניסה והניווט הראשי באפליקציה.מייבאים את
SwiftUIואת החבילהGoogleMaps3D.מחליפים את כל הקוד בתוך הצהרת הגוף ב-Map(mode: .hybrid).
ההגדרה הראשונית המינימלית שצריך לספק כדי להפעיל
MapהיאMapMode:.hybrid,.roadmap, או.satellite
קובץ
ContentView.swiftאמור להיראות כך:import SwiftUI import GoogleMaps3D struct ContentView: View { var body: some View { Map(mode: .hybrid) } } #Preview { ContentView() }
חלק 3: הגדרת מפתח ה-API.
צריך להגדיר את מפתח ה-API לפני שמפעילים את המפה. כדי לעשות את זה, מגדירים את
Map.apiKeyבגורם המטפל באירועיםinit()שלViewשמכיל את המפה.import SwiftUI import GoogleMaps3D struct ContentView: View { init () { Map.apiKey = "YOUR_API_KEY" } var body: some View { Map(mode: .hybrid) } }
חלק 4: שימוש במצלמה כדי לשלוט בתצוגת המפה
התצוגות של מפות בתלת-ממד נשלטות על ידי המחלקה Camera. בשלב הזה תלמדו איך לציין את המיקום, הגובה, הכיוון, ההטיה, הגלגול והטווח כדי להתאים אישית את תצוגת המפה.
משנים את הקריאה לפונקציה
Map()כך שתכלול את המאפייןinitialCamera. מפעילים אתinitialCameraכדי להציג את מרכז מנהטן.import SwiftUI import GoogleMaps3D struct ContentView: View { init () { Map.apiKey = "YOUR_API_KEY" } var body: some View { Map(initialCamera: .init( center: .init(latitude: 40.748339, longitude: -73.985912, altitude: 211.1), heading: 52, tilt: 68, roll: 0.0, range: 1039, fieldOfView: .degrees(50) ), mode: .hybrid) } }
הקוד שלמעלה מגדיר ערכים לפרמטרים הבאים:
-
center: הערךLatLngAltitudeשמייצג את מיקום המצלמה -
heading: הכיוון במעלות מהצפון שאליו המצלמה צריכה לפנות. -
tilt: זווית ההטיה במעלות, כאשר 0 מציין מבט ישירות מלמעלה ו-90 מציין מבט אופקי. -
roll: זווית הגלגול סביב המישור האנכי של המצלמה, במעלות. -
range: המרחק במטרים של המצלמה מהמיקום של קו הרוחב וקו האורך -
fieldOfView: הזווית שמייצגת את שדה הראייה של המצלמה
אם לא תספקו אף אחד מהפרמטרים הנוספים האלה, המערכת תשתמש בערך ברירת המחדל.
כדי להציג יותר נתונים תלת-ממדיים בתצוגת המצלמה, מגדירים את הפרמטרים הראשוניים כך שיוצג מבט קרוב יותר ומוטה.
חלק 5: תצוגה מקדימה והפעלת האפליקציה
הוספת תצוגה מקדימה של Xcode
תצוגות מקדימות הן תכונה יעילה של XCode שמאפשרת לראות את האפליקציה ולבצע בה פעולות בלי להשתמש בסימולטור או במכשיר חיצוני.
כדי להוסיף תצוגה מקדימה, מוסיפים בלוק קוד של
#Preview {}מחוץ ל-struct.#Preview { ContentView() }הפעלת האפליקציה
יוצרים ומפעילים את האפליקציה.
מצבי טעינה ושגיאה של המפה
Maps 3D SDK ל-iOS מציג באופן אוטומטי משוב חזותי מובנה בזמן ניהול המצב של Map:
- שכבת-על של טעינה: אינדיקטור התקדמות ממורכז מוצג כשתצוגת המפה מאותחלת או נטענת בפעם הראשונה.
- שכבת-על של שגיאה: שכבת-על של שגיאה מוצגת אם המפה לא נטענת.
אם אתם מחילים עיצוב מפה מבוסס-ענן באמצעות style(mapID:error:) ב-Map, אתם יכולים להעביר סגירת error כדי לטפל בשגיאות בטעינת העיצוב.
האזנה לאירועי הקשה על המפה
כדי להאזין לאירועי הקשה במפה, מחילים את המשתנה onTap(_:) על Map.
כשמשתמש מקיש על המפה, ה-closure מקבל ערך MapTapInfo שמספק את location (LatLngAltitude) ואת content (MapTapInfo.Content.map או MapTapInfo.Content.place(id:)) שהמשתמש הקיש עליהם. מידע נוסף על אינטראקציות עם נקודות עניין זמין במאמר אינטראקציה עם נקודות עניין.
Map(mode: .hybrid)
.onTap { tapInfo in
print("Tapped at \(tapInfo.location), content: \(tapInfo.content)")
}
מעולה!
הוספתם בהצלחה מפה תלת-ממדית לאפליקציה.
בשלב הבא, אתם יכולים לבדוק תכונות מתקדמות יותר של Maps 3D SDK ל-iOS, כמו אנימציות של מסלול המצלמה, סמנים תלת-ממדיים או מצולעים.