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 על סמך הקואורדינטה.
ה-method
moveNearCoordinate
מבקשת צילום פנורמי ליד הקואורדינטה.השיטה
moveNearCoordinate:radius
דומה, אבל היא מאפשרת לציין רדיוס חיפוש במטרים סביב הקואורדינטה.השיטה
moveNearCoordinate:source
מאפשרת לציין מקור. כדאי להשתמש במקורות מידע כדי להגביל את Street View לחיפוש רק של פנורמה מבחוץ. כברירת מחדל, תמונות פנורמה של מיקומים מופיעות בפנים או מבחוץ. שימו לב שייתכן שצילומי פנורמה בחוץ לא קיימים במיקום שצוין.באמצעות
moveNearCoordinate:radius:source
אפשר לציין גם רדיוס וגם מקור.
הצגה של תמונות Street View
הוספת צופה ב-Street View
השלבים הבסיסיים להוספת צופה הם:
- (Once) פועלים לפי השלבים בקטע תחילת העבודה כדי לקבל את ה-SDK, מקבלים מפתח ומוסיפים את ה-frameworks הנדרשות.
- יצירה או עדכון של
ViewController
. אם הפנורמה תוצג כאשר בקר התצוגה יהפוך לגלוי, הקפידו ליצור אותה באמצעות ה-methodloadView
. - יוצרים מחלקה
GMSPanoramaView
ויוצרים מחלקה באמצעות השיטהGMSPanoramaView
initWithFrame:
. אם התצוגה הזו תשמש כתצוגה היחידה של בקר התצוגה, ניתן יהיה להשתמש ב-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 באמצעות הסכימה של כתובת ה-URL comgooglemaps
, על ידי הגדרת הפרמטר mapmode
ל-streetview
. דוגמה לכתובת אתר שתפעיל את 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 תומך ברמות שונות של פרטי תמונה באמצעות שינוי מרחק התצוגה. תוכלו להגדיר את רמת הזום באופן פרוגרמטי, או שהמשתמשים יוכלו לשנות את הרמה במציג על ידי תנועת צביטה לשינוי מרחק התצוגה.
הזזת המצלמה
אחרי שיוצרים את 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];
אפשר להוסיף אנימציה למעבר על ידי קריאה ל-method 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
.