Street View במפות Google מאפשר לכם לגלות מקומות ברחבי העולם באמצעות תמונות ב-360 מעלות ברמת הרחוב. אפשר לסייר באתרים מפורסמים בעולם, לראות פלאי טבע, לנווט בטיול או להראות לעולם מבחוץ.
סקירה כללית
Google Street View מספק תצוגות פנורמיות של 360 מעלות מכבישים ייעודיים ברחבי אזור הכיסוי. הכיסוי שזמין דרך ה-SDK זהה לזה של אפליקציית מפות Google ל-iOS או https://maps.google.com/
. למידע נוסף על Street View ולהצגת האזורים הנתמכים במפה אינטראקטיבית, אפשר לעבור אל מידע על Street View.
ה-SDK של מפות Google ל-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
בתור התצוגה של בקר התצוגה, למשל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 עם סכימת כתובת האתר comgooglemaps
על ידי הגדרת הפרמטר mapmode
ל-streetview
. דוגמה לכתובת אתר שתפעיל את Street View מופיעה למטה. מידע נוסף זמין במסמכי התיעוד בנושא סכימת כתובות URL.
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
מיקומים ב-Street View ונקודת מבט (POV)
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- מעלות ישרות כלפי מטה ואורתוגונליים לגובה ברירת המחדל).
Zoom
Street View תומך ברמות שונות של פרטי תמונה באמצעות שינוי מרחק התצוגה. תוכלו להגדיר את רמת הזום באופן פרוגרמטי, או שהמשתמשים יוכלו לשנות את הרמה במציג על ידי תנועת צביטה לשינוי מרחק התצוגה.
הזזת המצלמה
אחרי שיצרתם את 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
.
בנוסף, אפשר לשלוט במצלמה באמצעות אנימציה ליבה. האפשרות הזו זמינה דרך 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
. אם המרחק יהיה גדול מדי, הסמן יהיה קטן מדי להצגה והוא יוסתר מהתצוגה.
מגדירים את הנכס panoramaView
לערך nil
כדי להסיר אותו מהשדה GMSPanoramaView
.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
אירועים
אפשר להאזין לאירועים שמתרחשים בפנורמה ב-Street View, למשל כשמשתמש מקיש על תמונת הפנורמה. כדי להאזין לאירועים, צריך להטמיע את הפרוטוקול GMSPanoramaViewDelegate
. אפשר לעיין במדריך הכולל לאירועים ולרשימת השיטות ב-GMSPanoramaViewDelegate
.