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
באמצעות אמצעי תשלום אחד (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
. דוגמה לכתובת 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
) מגדיר את שונות הזווית "up" או 'למטה' מ- גובה הצליל ההתחלתי של המצלמה שמוגדר כברירת מחדל, והוא לרוב (אבל לא תמיד) שטוח אופקי. (לדוגמה, סביר להניח שתמונה שצולמה על גבעה תציג ברירת המחדל למצגת מכירות שאינה אופקית.) זוויות היצירה נמדדות באמצעות ערכים חיוביים כלפי מעלה (עד +90 מעלות ישר למעלה ואורתוגונלית ל) ערך ברירת המחדל של גובה הצליל) וערכים שליליים עם מבט כלפי מטה (ל-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];
כדי להנפיש מעבר, אפשר להפעיל את
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
.