Street View

בחירת פלטפורמה: Android iOS JavaScript

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

השלבים הבסיסיים להוספת צופה:

  1. (פעם אחת) כדי לקבל את ה-SDK צריך לפעול לפי השלבים המפורטים במאמר תחילת העבודה, לקנות מפתח ולהוסיף את המסגרות הנדרשות.
  2. יצירה או עדכון של ViewController. אם הפנורמה תוצג כשבקר התצוגה יהפוך לגלוי, הקפידו ליצור אותו בשיטה loadView.
  3. יצירה ויצירה של כיתה GMSPanoramaView באמצעות השיטה GMSPanoramaView initWithFrame:. אם התצוגה הזו משמשת כתצוגה היחידה של בקר התצוגה, ניתן להשתמש ב-CGRectZero כמסגרת של המפה – הגודל של המפה ישתנה באופן אוטומטי.
  4. מגדירים את האובייקט GMSPanoramaView כתצוגה של בקר התצוגה, לדוגמה self.view = panoView;.
  5. מגדירים את מיקום התמונה ב-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.