Intents של מפות Google ל-Android

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

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

סקירה כללית

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

  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)

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

כדי לוודא שאפליקציה זמינה לקבלת הכוונה, קוראים ל-resolveActivity() באובייקט Intent. אם התוצאה היא לא 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)

חיפוש מקום

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

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 של Intent הזה כדי להפעיל את ניווט עם מפות 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

משתמשים ב-Intent‏ 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. הערך Zoom הוא הרביעי מתוך חמישה ערכים שמופרדים בפסיקים.
    • tilt: מציין את הזווית של המצלמה, כלפי מעלה או מטה. הטווח הוא מ-‎-90 עד 90, דרך 0. הערך 90 מציין מבט ישירות למטה, הערך 0 מציין מבט אופקי והערך ‎-90 מציין מבט ישירות למעלה.

דוגמאות

ריכזנו כאן כמה דוגמאות לשימוש ב-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