Street View במפות Google מאפשר לכם לחקור מקומות ברחבי העולם באמצעות תמונות פנורמיות ב-360 מעלות ברמת הרחוב. אתם יכולים להתרשם מאתרים גלובליים, לראות פלאי עולם טבעיים, לנווט בנסיעה או להציג את החזית של העסק.
סקירה כללית
ב-Google Street View אפשר לראות תמונות פנורמיות ב-360 מעלות מכבישים ייעודיים בכל אזור הכיסוי. הכיסוי שזמין דרך ה-SDK זהה לכיסוי של אפליקציית מפות Google ל-iOS או של https://maps.google.com/
. מידע נוסף על Street View ועל האזורים הנתמכים זמין במפה האינטראקטיבית במידע על Street View.
SDK של מפות ל-iOS מספק שירות Street View לקבלת תמונות ולביצוע פעולות עיבוד עליהן, שמשמש את התכונה Street View במפות Google.
תמונות Street View מוחזרות כתמונות פנורמיות, וניתן לצפות בהן דרך נגן Street View – אובייקט מסוג GMSPanoramaView
.
תמונות פנורמיות ב-Street View
כל תמונת פנורמה ב-Street View היא תמונה אחת או קבוצה של תמונות שמספקות תצוגה מלאה של 360 מעלות ממקום אחד. התמונות תואמות להיטל ריבוע כפול (Plate Carrée), שמכיל תצוגה אופקית של 360 מעלות (עיקוף מלא) ותצוגה אנכית של 180 מעלות (ממעלה ישר למטה ישר). התמונה הפנורמית ב-360 מעלות שנוצרת מגדירה הקרנה על כדור, והתמונה נמתחת על פני השטח הדו-ממדי של הכדור.
אפשר להציג תמונות פנורמיות של Street View באמצעות האובייקט GMSPanoramaView
. האובייקט הזה מספק חלון תצוגה שיציג את התמונה הפנורמית ככדור, עם מצלמה במרכזו. אפשר לשלוט באופן פרוגרמטי בכיוון של המצלמה, וגם בכמה מאפיינים של ההתאמה האישית של הצופה.
גישה לנתונים של Street View
תמונות פנורמיות ב-Street View מזוהות באמצעות אחד משני קטעי המטא-נתונים הבאים:
panoramaID
- המזהה הייחודי של פנורמה ב-Street View. הערך של
panoramaID
יכול להשתנות עם הזמן, והוא לא מתאים כמידע שימושי לטווח ארוך או כמידע מקודד. ה-panoramaID
הכי מתאים לשימוש כדי לספק גישה פרוגרמטית לתמונות שונות של Street View. coordinate
- המיקום המדויק של התמונה הזו, שמופיע בתור
CLLocationCoordinate2D
. אפשר להשתמש ב-coordinate
כדי לשמור באופן קבוע מיקום של תמונה פנורמית, או כדי לתרגם פעולות של משתמשים במפה לתמונה של Street View.
גם panoramaID
וגם coordinate
מאוחסנים כמאפיינים של האובייקט GMSPanorama
. אפשר לבקש GMSPanorama
מה-GMSPanoramaService
באמצעות coordinate
או panoramaID
. האובייקט שנוצר יכלול את שני קטעי המטא-נתונים, וגם מערך של קישורים לפנורמות בקרבת מקום.
הגדרת המיקום של הפנורמה
אפשר להגדיר את המיקום של תמונת הפנורמה ב-Street View על סמך הקואורדינטה.
השיטה
moveNearCoordinate
מבקשת פנורמה ליד הקואורדינטה.השיטה
moveNearCoordinate:radius
דומה, אבל מאפשרת לציין רדיוס חיפוש, במטרים, סביב הקואורדינטה.השיטה
moveNearCoordinate:source
מאפשרת לציין מקור. מקור שימושי אם רוצים להגביל את Street View לחיפוש רק תמונות פנורמיות שמתרחשות בחוץ. כברירת מחדל, תמונות פנורמיות של מיקומים הן תמונות של פנים או של חוץ. שימו לב: יכול להיות שלא יהיו תמונות פנורמיות של חוץ במיקום שציינתם.השיטה
moveNearCoordinate:radius:source
מאפשרת לציין גם רדיוס וגם מקור.
צפייה בתמונות Street View
הוספת נגן Street View
השלבים הבסיסיים להוספת צופה הם:
- (פעם אחת) פועלים לפי השלבים המפורטים במאמר תחילת העבודה כדי לקבל את ה-SDK, לקבל מפתח ולהוסיף את המסגרות הנדרשות.
- יוצרים או מעדכנים
ViewController
. אם הפנורמה תוצג כשמרכז הבקרה של התצוגה יהיה גלוי, חשוב ליצור אותה בתוך השיטהloadView
. - יוצרים ומגדירים מופע של הכיתה
GMSPanoramaView
באמצעות השיטהinitWithFrame:
שלGMSPanoramaView
. אם התצוגה הזו תשמש בתור התצוגה היחידה של מנהל התצוגות, אפשר להשתמש ב-CGRectZero
כמסגרת של המפה – גודל המפה ישתנה באופן אוטומטי. - מגדירים את האובייקט
GMSPanoramaView
בתור התצוגה של ה-view controller, למשלself.view = panoView;
. - מגדירים את המיקום של התמונה ב-Street View באמצעות שיטה כמו
moveNearCoordinate:
.
בדוגמה הבאה מוצגת הוספה של נגן Street View לאפליקציה.
Swift
import GoogleMaps class StreetView: UIViewController { override func loadView() { let panoView = GMSPanoramaView(frame: .zero) self.view = panoView panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312)) } }
Objective-C
#import "StreetView.h" @import GoogleMaps; @interface StreetView () @end @implementation StreetView - (void)loadView { GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero]; self.view = panoView; [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)]; } @end
התאמה אישית של הצופה
אתם יכולים להתאים אישית את הצופה על ידי הגבלת התנועות הזמינות. כברירת מחדל, ההזזה, הזום והמעבר לנופים פנורמיים סמוכים מופעלים.
אפשר לשלוט בתנועות ספציפיות באמצעות מאפיינים של GMSPanoramaView
.
המאפיינים האלה מפעילים או משביתים תנועות בשליטת המשתמש. עדיין אפשר לבצע שינויים פרוגרמטיים כשהתנועה מושבתת.
orientationGestures
- האם המשתמש יוכל לשנות את כיוון המצלמה באמצעות הקשה או גרירה. מגדירים את הערך ל-
NO
כדי להשבית את שינויי הכיוון במצלמה. zoomGestures
- אם המשתמש יוכל להשתמש בתנועת צביטה כדי לשנות את מרחק התצוגה. מגדירים את הערך כ-
NO
כדי להשבית את הזום. navigationGestures
- אם המשתמש יוכל לשנות את התצוגה של התמונה הפנורמית. המשתמשים יכולים להקיש הקשה אחת על קישורי הניווט או להקיש הקשה כפולה על התצוגה כדי לשנות את התצוגות הפנורמיות. כדי להשבית את השינויים בניווט, מגדירים את הערך ל-
NO
.
אפשר להפעיל או להשבית את כל התנועות בבת אחת באמצעות השיטה setAllGesturesEnabled:
.
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
[panoView setAllGesturesEnabled:NO];
השקת Street View באמצעות סכמת כתובת ה-URL
אפשר לראות את התמונות של Google Street View באפליקציית מפות Google ל-iOS. אפשר להפעיל את אפליקציית מפות Google ל-iOS במצב Street View באמצעות תבנית כתובת ה-URL comgooglemaps
. לשם כך, מגדירים את הפרמטר mapmode
לערך streetview
. בהמשך מופיעה דוגמה לכתובת URL שתפעיל את Street View. למידע נוסף, אפשר לעיין במסמכי התיעוד בנושא פורמט כתובת URL.
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
מיקומים ונקודות מבט (POV) ב-Street View
השדה GMSPanoramaCamera
מאפשר להגדיר את נקודת המבט של מצלמת Street View כשימוש בשילוב של כיוון, שיפוע וזום.
קבוצות הקטעים הבאים יכוונו את המצלמה לדרום ולמטה מעט.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
כיוון
המיקום ב-Street View מגדיר את מיקום המיקוד של המצלמה בתמונה, אבל הוא לא מגדיר את כיוון המצלמה בתמונה הזו.
לשם כך, האובייקט GMSOrientation
מגדיר שני מאפיינים:
heading
מגדיר את זווית הסיבוב סביב מיקום המצלמה במדידה בדרגות ביחס לצפון האמיתי. הכיוונים נמדדים בכיוון השעון: צפון אמיתי הוא 0, מזרח הוא 90, דרום הוא 180 ומערב הוא 270.pitch
(ברירת המחדל היא0
) מגדיר את סטיית הזווית 'למעלה' או 'למטה' מהנטייה הראשונית של המצלמה שמוגדר כברירת מחדל, שבדרך כלל (אבל לא תמיד) היא אופקי. (לדוגמה, תמונה שצולמה על גבעה תהיה כנראה בזווית ברירת מחדל שאינה אופקית). זוויות השיפוע נמדדות באמצעות ערכים חיוביים למעלה (עד 90 מעלות ישירות למעלה ובאופן אנכי לשיפוע ברירת המחדל) וערכים שליליים למטה (עד 90 מעלות ישירות למטה ובאופן אנכי לשיפוע ברירת המחדל).
שינוי מרחק התצוגה
ב-Street View יש תמיכה ברמות שונות של פירוט התמונה באמצעות שימוש ב-zoom. אפשר להגדיר את רמת הזום באופן פרוגרמטי, או שהמשתמשים יכולים לשנות את הרמה בנגן באמצעות צביטה כדי להגדיל או להקטין את התצוגה.
הזזת המצלמה
אחרי שיוצרים את GMSPanoramaView
, ומגדירים לו מצלמה או מצלמת ברירת מחדל, אפשר לשנות אותה באחת מכמה דרכים. כשמשנים את המצלמה, אפשר להוסיף אנימציה לתנועת המצלמה שנובעת מכך. האנימציה מבצעת אינטרפולציה בין מאפייני המצלמה הנוכחיים לבין מאפייני המצלמה החדשים.
אפשר לשנות את האובייקט GMSPanoramaCamera
ולהגדיר אותו בנכס camera
של GMSPanoramaView
. הפעולה הזו תגרום למצלמה לעבור לנקודת המבט החדשה ללא אנימציה. אפשר ליצור GMSCameraPosition
כדי להגדיר כל שילוב של כיוון וזום.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
כדי להוסיף אנימציה למעבר, קוראים לשיטה animateToCamera:animationDuration:
של GMSPanoramaView
.
בנוסף, אפשר לשלוט במצלמה באמצעות Core Animation. האפשרות הזו זמינה דרך CALayer
בהתאמה אישית ב-GMSPanoramaView
,GMSPanoramaLayer
.
סמנים ב-Street View
אפשר להציג סמנים במפה באמצעות האובייקט GMSPanoramaView
. אפשר להשתמש באובייקט GMSMarker
ב-GMSMapView
או ב-GMSPanoramaView
על ידי הגדרת המאפיינים המתאימים שלו:
Swift
// Create a marker at the Eiffel Tower let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294) let marker = GMSMarker(position: position) // Add the marker to a GMSPanoramaView object named panoView marker.panoramaView = panoView // Add the marker to a GMSMapView object named mapView marker.map = mapView
Objective-C
// Create a marker at the Eiffel Tower CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294); GMSMarker *marker = [GMSMarker markerWithPosition:position]; // Add the marker to a GMSPanoramaView object named panoView marker.panoramaView = panoView; // Add the marker to a GMSMapView object named mapView marker.map = mapView;
הגודל של הסמנים ישתנה בהתאם למרחק בין המיקום שלהם לבין המיקום של GMSCameraView
. אם המרחק הזה יגדל מדי, הסמן יהיה קטן מדי כדי להופיע וייעלם מהתצוגה.
כדי להסיר אותו מ-GMSPanoramaView
, מגדירים את המאפיין panoramaView
לערך nil
.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
אירועים
אתם יכולים להאזין לאירועים שמתרחשים בתמונה הפנורמית של Street View, למשל כשמשתמש מקייש על התמונה. כדי להאזין לאירועים, צריך להטמיע את הפרוטוקול GMSPanoramaViewDelegate
. במדריך הכללי לאירועים וברשימה של השיטות ב-GMSPanoramaViewDelegate
.