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 מעלות של תצוגה אופקית (wrapper מלא) ו-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
באמצעות השיטה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 במצב תצוגת רחוב באמצעות סכימת כתובת ה-URL של comgooglemaps
, על ידי הגדרת הפרמטר mapmode
לערך streetview
. דוגמה לכתובת URL שתפעיל את Street View תופיע למטה. מידע נוסף זמין במסמכי התיעוד בנושא URL Scheme.
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
מגדיר את זווית הסיבוב סביב לוקוס המצלמה במעלות ביחס לצפון אמיתי. כותרות נמדדות בכיוון השעון: True צפון הוא 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
.