Intents של מפות Google ל-Android

אפליקציית מפות Google ל-Android חושפת כמה כוונות שאפשר להשתמש בהן כדי להפעיל את מפות Google במצבי תצוגה, חיפוש, ניווט או Street View. כדי להטמיע מפה באפליקציה, אפשר לעיין במדריך למתחילים בנושא Maps SDK ל-Android.

בפלטפורמות של Android Automotive OS ‏ (AAOS), יש שיקולים ספציפיים ו-Intents נוספים שזמינים. פרטים נוספים זמינים במסמכי התיעוד בנושא Google Maps for Android Automotive Intents.

סקירה כללית

‫Intents מאפשרים להתחיל פעילות באפליקציה אחרת על ידי תיאור של פעולה שרוצים לבצע (למשל, 'הצגת מפה' או 'הצגת מסלול נסיעה לשדה התעופה') באובייקט Intent. אפליקציית מפות Google ל-Android תומכת בכמה כוונות שונות,ומאפשרת להפעיל את אפליקציית מפות Google ולבצע אחת מארבע פעולות:

  1. הצגת מפה במיקום מסוים וברמת זום מסוימת.
  2. חיפוש מיקומים או מקומות והצגתם במפה.
  3. לבקש מסלול נסיעה ממיקום אחד למיקום אחר. אפשר לקבל מסלולים לשלושה אמצעי תחבורה: נהיגה, הליכה ורכיבה על אופניים.
  4. הצגת תמונות פנורמיות ב-Google Street View.

בדף הזה מתוארים ה-intents שבהם אפשר להשתמש באפליקציית מפות Google ל-Android. מידע נוסף על כוונות זמין במאמרים כוונות ומסנני כוונות וכוונות נפוצות.

בקשות לזיהוי כוונות

כדי להפעיל את מפות Google באמצעות intent, קודם צריך ליצור אובייקט Intent, לציין את הפעולה, ה-URI והחבילה שלו.

  • פעולה: כל הכוונות של מפות Google נקראות כפעולת תצוגה – ACTION_VIEW.
  • URI: כוונות של מפות Google משתמשות במזהי URI עם קידוד כתובת URL שמציינים פעולה נבחרת, יחד עם נתונים מסוימים לביצוע הפעולה.
  • חבילה: הקריאה setPackage("com.google.android.apps.maps") מבטיחה שאפליקציית מפות Google ל-Android תטפל ב-Intent. אם החבילה לא מוגדרת, המערכת קובעת אילו אפליקציות יכולות לטפל ב-Intent. אם יש כמה אפליקציות זמינות, יכול להיות שהמשתמש יתבקש לבחור באיזו אפליקציה הוא רוצה להשתמש.

אחרי שיוצרים את Intent, אפשר לבקש מהמערכת להפעיל את האפליקציה הקשורה בכמה דרכים. שיטה נפוצה היא להעביר את Intent אל השיטה startActivity(). המערכת מפעילה את האפליקציה הנדרשת – במקרה הזה מפות Google – ומתחילה את Activity המתאים.

Java

// Create a Uri from an intent string. Use the result to create an Intent.
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988");
// Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");
// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);

Kotlin

// Create a Uri from an intent string. Use the result to create an Intent.
val gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988")
// Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps")
// Attempt to start an activity that can handle the Intent
startActivity(mapIntent)

אם המערכת לא מצליחה לזהות אפליקציה שיכולה להגיב ל-Intent, יכול להיות שהאפליקציה שלכם תקרוס. לכן, לפני שמציגים למשתמש אחת מהכוונה האלה, צריך לוודא שאפליקציית היעד מותקנת.

כדי לוודא שאפליקציה זמינה לקבלת הכוונה, קוראים ל-resolveActivity() באובייקט Intent. אם התוצאה היא non-null, יש לפחות אפליקציה אחת שיכולה לטפל ב-Intent, ואפשר לקרוא בבטחה ל-startActivity(). אם התוצאה היא null, אל תשתמשו ב-Intent, ואם אפשר, תשביתו את התכונה שמפעילה את ה-Intent.

Java

if (mapIntent.resolveActivity(getPackageManager()) != null) {
    ...
}

Kotlin

mapIntent.resolveActivity(packageManager)?.let {
    ...
}

לדוגמה, כדי להציג מפה של סן פרנסיסקו, אפשר להשתמש בקוד הבא:

Java

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
    startActivity(mapIntent);
}

Kotlin

val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
mapIntent.resolveActivity(packageManager)?.let {
    startActivity(mapIntent)
}

מחרוזות שאילתה שעברו קידוד URL

כל המחרוזות שמועברות אל Google Maps Intents חייבות להיות מקודדות ב-URI. לדוגמה, המחרוזת 1st & Pike, Seattle צריכה להפוך ל-1st%20%26%20Pike%2C%20Seattle. אפשר לקודד רווחים במחרוזת באמצעות %20 או להחליף אותם בסימן הפלוס (+).

אפשר להשתמש בשיטה android.net.Uri encode() כדי לקודד את המחרוזות. לדוגמה:

Java

Uri gmmIntentUri =
    Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode("1st & Pike, Seattle"));

Kotlin

val gmmIntentUri =
    Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode("1st & Pike, Seattle"))

הצגת מפה

אפשר להשתמש בכוונת geo: כדי להציג מפה במיקום מסוים וברמת זום מסוימת.

geo:latitude,longitude?z=zoom

פרמטרים

  • latitude ו-longitude מגדירים את נקודת המרכז של המפה.
  • z מגדיר באופן אופציונלי את רמת הזום ההתחלתית של המפה. הערכים הקבילים נעים בין 0 (כל העולם) ל-21 (בניינים ספציפיים). המגבלה העליונה עשויה להשתנות בהתאם לנתוני המפה שזמינים במיקום שנבחר.

דוגמאות

Java

// Creates an Intent that loads a map of San Francisco
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Creates an Intent that loads a map of San Francisco
val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

חפש מיקום

משתמשים ב-Intent הזה כדי להציג שאילתות חיפוש באזור תצוגה שצוין. אם השאילתה מחזירה תוצאה אחת, אפשר להשתמש ב-intent הזה כדי להציג סיכה במקום או בכתובת מסוימים, כמו ציון דרך, עסק, מאפיין גאוגרפי או עיר.

geo:latitude,longitude?q=query
geo:0,0?q=my+street+address
geo:0,0?q=latitude,longitude(label)

פרמטרים

בנוסף לפרמטרים שמשמשים להצגת מפה, חיפוש Google תומך בפרמטרים הבאים:

  • q מגדיר את המקומות להדגשה במפה. חובה לציין את הפרמטר q בכל בקשה לחיפוש. אפשר להזין מיקום בתור שם של מקום או כתובת. המחרוזת צריכה להיות מקודדת בקידוד URL, כך שכתובת כמו City Hall, New York, NY תומר ל-City+Hall,New+York,NY.

  • label מאפשרת לכם להגדיר תווית מותאמת אישית במקום שמזוהה במפה. הערך label צריך להיות מחרוזת.

אם מעבירים מונח חיפוש כללי, מפות Google מנסה למצוא מיקום קרוב לקווי הרוחב והאורך שצוינו שתואם לקריטריונים. אם לא מצוין מיקום, מפות Google מנסה למצוא כרטיסים של עסקים בסביבה. לדוגמה:

Java

// Search for restaurants nearby
Uri gmmIntentUri = Uri.parse("geo:0,0?q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
// Search for restaurants in San Francisco.
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Search for restaurants nearby.
val gmmIntentUri = Uri.parse("geo:0,0?q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)
// Search for restaurants in San Francisco.
val gmmIntentUri =
    Uri.parse("geo:37.7749,-122.4194?q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)
חיפוש מסעדות בתל אביב
איור 1. מחפש מסעדות בתל אביב

אפשר להטות את תוצאות החיפוש עוד יותר על ידי ציון פרמטר זום לצד מחרוזת השאילתה. בדוגמה הבאה, הוספת זום של 10 מנסה למצוא מסעדות ברמת העיר במקום בקרבת מקום.

Java

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
    Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

כשמחפשים כתובת ספציפית, מוצגת סיכה במיקום הזה.

Java

Uri gmmIntentUri = Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
    Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

בדוגמה הקודמת מוגדרים קו רוחב וקו אורך של 0,0, אבל כתובת מועברת כמחרוזת שאילתה. כשמחפשים מיקום ספציפי, לא צריך לציין את קו הרוחב ואת קו האורך. עם זאת, אם אתם לא יודעים את הכתובת המדויקת, אתם יכולים לנסות להטות את תוצאות החיפוש על ידי ציון קואורדינטה. לדוגמה, חיפוש של הכתובת 'רחוב ראשי' עשוי להחזיר יותר מדי תוצאות.

Java

// Searching for 'Main Street' returns too many results.
Uri gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street");

Kotlin

// Searching for 'Main Street' returns too many results.
val gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street")

הוספת קו רוחב וקו אורך ל-URI של הכוונה משפיעה על התוצאות כך שהן מוטות לאזור מסוים:

Java

// Searches for 'Main Street' near San Francisco.
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=101+main+street");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Searches for 'Main Street' near San Francisco.
val gmmIntentUri =
    Uri.parse("geo:37.7749,-122.4194?q=101+main+street")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

אם אתם יודעים שהחיפוש יחזיר ערך יחיד, תוכלו להעביר תווית אופציונלית. התוויות צריכות להיות מחרוזת ולהופיע מתחת לסמן המפה. חשוב לזכור שהתוויות זמינות רק כשמציינים את q כקואורדינטות של קווי רוחב ואורך.

Java

// Display a label at the location of Google's Sydney office.
Uri gmmIntentUri = Uri.parse("geo:0,0?q=-33.8666,151.1957(Google+Sydney)");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Display a label at the location of Google's Sydney office.
val gmmIntentUri =
    Uri.parse("geo:0,0?q=-33.8666,151.1957(Google+Sydney)")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

במקום כתובת או קווי אורך ורוחב, אפשר להציג סיכה במיקום מוכר באמצעות Plus Code.

Java

// Display the location of Google, San Francisco using a global plus code.
Uri gmmIntentUri = Uri.parse("http://plus.codes/849VQJQ5+XX");
// Equivalently, define the same location using a local plus code.
gmmIntentUri = Uri.parse("https://plus.codes/QJQ5+XX,San%20Francisco");
// Construct and use the Intent as in the preceding examples.

Kotlin

// Display the location of Google, San Francisco using a global plus code.
var gmmIntentUri = Uri.parse("http://plus.codes/849VQJQ5+XX")
// Equivalently, define the same location using a local plus code.
gmmIntentUri = Uri.parse("https://plus.codes/QJQ5+XX,San%20Francisco")
// Construct and use the Intent as in the preceding examples.

הפעלת מסלול מפורט

אפשר להשתמש ב-URI של הכוונה הזה כדי להפעיל את הניווט במפות Google עם הוראות מפורטות לכתובת או לקואורדינטות שצוינו. ההוראות תמיד ניתנות מהמיקום הנוכחי של המשתמש.

google.navigation:q=a+street+address
google.navigation:q=latitude,longitude  

פרמטרים

  • q: הגדרת נקודת הקצה לחיפושי ניווט. הערך הזה יכול להיות קואורדינטות של קו רוחב וקו אורך, או כתובת בפורמט של שאילתה. אם מדובר במחרוזת שאילתה שמחזירה יותר מתוצאה אחת, התוצאה הראשונה נבחרת.

  • mode מגדיר את אמצעי התחבורה. הפרמטר mode הוא אופציונלי ואפשר להגדיר אותו לאחת מהאפשרויות הבאות:

    • d לנהיגה (ברירת מחדל)
    • b לרכיבה על אופניים
    • l לרכב דו-גלגלי
    • w להליכה
  • avoid מגדיר תכונות שהמסלול צריך לנסות להימנע מהן. הפרמטר avoid הוא אופציונלי ואפשר להגדיר אותו לאחד או יותר מהערכים הבאים:

    • t לתשלום אגרות
    • h בכבישים מהירים
    • f למעבורות

דוגמאות

הבקשות הבאות Intent הן לקבלת הוראות הגעה מפורטות לגן החיות טארונגה בסידני, אוסטרליה:

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
    Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)
מסלול אל גן החיות טארונגה
איור 2. מסלול אל Taronga Zoo

אם אתם מעדיפים לא לשלם אגרות או לא לנסוע במעבורת, אתם יכולים לבקש מסלול שבו המערכת מנסה להימנע מהאפשרויות האלה.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
    Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

אם אתם מעדיפים קצת פעילות גופנית, אתם יכולים לבקש מסלול לרכיבה על אופניים.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
    Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

אם אתם מעדיפים לנסוע על כלי רכב דו-גלגלי ממונע, אתם יכולים לבקש שההוראות יכללו דרכים ושבילים צרים שאסור לנסוע בהם עם מכוניות. הפונקציה הבאה intent מחזירה מסלול בהודו.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Connaught+Place,+New+Delhi,Delhi&mode=l");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
    Uri.parse("google.navigation:q=Connaught+Place,+New+Delhi,Delhi&mode=l")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

הצגת פנורמה ב-Street View

משתמשים בכוונה google.streetview כדי להפעיל את Google Street View. ‫Google Street View מספק תצוגות פנורמיות ממיקומים ייעודיים באזור הכיסוי שלו. אפשר גם לראות תמונות פנורמיות שנוספו על ידי משתמשים ואוספים מיוחדים של Street View.

google.streetview:cbll=latitude,longitude&cbp=0,bearing,0,zoom,tilt
google.streetview:panoid=id&cbp=0,bearing,0,zoom,tilt

פרמטרים

כל כתובות ה-URI של google.streetview חייבות לכלול את הפרמטר cbll או את הפרמטר panoid:

  • cbll מקבלת קו רוחב וקו אורך כערכים מופרדים בפסיקים (46.414382,10.013988). האפליקציה מציגה את התמונה הפנורמית שצולמה הכי קרוב למיקום הזה. תמונות Street View מתעדכנות מעת לעת, ויכול להיות שהתמונות צולמו בכל פעם מזוויות שונות. לכן, יכול להיות שהמיקום שלכם יתעדכן לפנורמה אחרת כשהתמונות יתעדכנו.

  • panoid הוא מזהה פנורמה ספציפי. מערכת Google Maps משתמשת במזהה הפנורמה אם מציינים גם panoid וגם cbll. מזהי הפנורמה זמינים לאפליקציית Android מהאובייקט StreetViewPanoramaLocation.

  • cbp הוא פרמטר אופציונלי שמשנה את הכיוון הראשוני של המצלמה. הפרמטר cbp מקבל 5 ערכים מופרדים בפסיקים, וכולם אופציונליים. הערכים הכי חשובים הם השני, הרביעי והחמישי, שקובעים את הכיוון, הזום וההטיה בהתאמה. הערכים הראשון והשלישי לא נתמכים, ולכן צריך להגדיר אותם כ-0.

    • bearing: מציין את הכיוון של המצלמה במצפן במעלות בכיוון השעון מצפון. הצפון האמיתי הוא 0, מזרח הוא 90, דרום הוא 180, מערב הוא
      1. הערכים שמועברים לזווית הכיוון חוזרים על עצמם, כלומר 0°, ‏ 360° ו-720° מצביעים כולם לאותו כיוון. הכיוון מוגדר כערך השני מתוך חמישה ערכים שמופרדים בפסיקים.
    • zoom: הגדרת רמת הזום של המצלמה. מרחק התצוגה שמוגדר כברירת מחדל הוא 0. הגדלה של 1 תכפיל את ההגדלה. הזום מוגבל בין 0 לבין רמת הזום המקסימלית של הפנורמה הנוכחית. המשמעות היא שכל ערך שנמצא מחוץ לטווח הזה מוגדר לערך הקיצוני הקרוב ביותר שנמצא בטווח. לדוגמה, אם הערך הוא ‎-1, הוא ישתנה ל-0. הערך של הזום הוא הרביעי מתוך חמישה ערכים מופרדים בפסיקים.
    • tilt: מציין את הזווית של המצלמה, למעלה או למטה. הטווח הוא ‎-90 עד 90, כולל 0. ‏90 מציין מבט ישירות למטה, 0 מציין מבט אופקי ו-‎-90 מציין מבט ישירות למעלה.

דוגמאות

ריכזנו כאן כמה דוגמאות לשימוש ב-Intent של Street View.

Java

// Displays an image of the Swiss Alps.
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
// Uses a PanoID to show an image from Maroubra beach in Sydney, Australia.
Uri gmmIntentUri = Uri.parse("google.streetview:panoid=Iaa2JyfIggYAAAQfCZU9KQ");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
// Opens Street View between two Pyramids in Giza. The values passed to the
// cbp parameter angles the camera slightly up, and towards the east.
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=29.9774614,31.1329645&cbp=0,30,0,0,-15");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Displays an image of the Swiss Alps.
val gmmIntentUri =
    Uri.parse("google.streetview:cbll=46.414382,10.013988")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)
// Uses a PanoID to show an image from Maroubra beach in Sydney, Australia.
val gmmIntentUri =
    Uri.parse("google.streetview:panoid=Iaa2JyfIggYAAAQfCZU9KQ")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)
// Opens Street View between two Pyramids in Giza. The values passed to the
// cbp parameter angles the camera slightly up, and towards the east.
val gmmIntentUri =
    Uri.parse("google.streetview:cbll=29.9774614,31.1329645&cbp=0,30,0,0,-15")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)
פירמידות ב-Street View
איור 3. פירמידות ב-Street View