
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 מעלות ממיקום יחיד. התמונות תואמות להיטל Equirectangular (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באמצעות ה-methodGMSPanoramaViewinitWithFrame:. אם רוצים להשתמש ב- כתצוגה היחידה של בקר התצוגה, אפשר להשתמש ב-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
התאמה אישית של הצופה
אתם יכולים להתאים אישית את אפליקציית Viewer על ידי הגבלת המחוות שזמינות בה. כברירת מחדל, האפשרויות של הזזה, זום ומעבר לתמונות פנורמיות סמוכות מופעלות.
התנועות האישיות נשלטות באמצעות מאפיינים של 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
מיקומי 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.
בנוסף, אפשר לשלוט במצלמה באמצעות 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. אם המרחק הזה יהיה גדול מדי, הסמן יהיה קטן מדי מכדי להציג אותו והוא יוסתר מהתצוגה.
מגדירים את המאפיין panoramaView לערך nil כדי להסיר אותו מה-GMSPanoramaView.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
אירועים
אתם יכולים להאזין לאירועים שמתרחשים בתמונת הפנורמה ב-Street View, למשל כשמשתמש מקיש על הפנורמה. כדי להאזין לאירועים, צריך להטמיע את הפרוטוקול GMSPanoramaViewDelegate. אפשר לעיין במדריך הכללי לאירועים וברשימת השיטות ב-GMSPanoramaViewDelegate.