Intents של מפות Google ל-Android

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

סקירה כללית

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

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

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

בקשות לכוונה

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

  • פעולה: כל הכוונות במפות Google נקראות כפעולת תצוגה – ACTION_VIEW.
  • URI: כוונות במפות Google משתמשות בכתובת URL מקודדת שמציינת את הפעולה הרצויה, יחד עם נתונים מסוימים לביצוע הפעולה.
  • Package: קריאה ל-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, יש לפחות אפליקציה אחת שיכולה לטפל בכוונה, וניתן לבצע קריאה ל-startActivity() בבטחה. אם התוצאה היא null, אין להשתמש בכוונה, ואם אפשר, צריך להשבית את התכונה שמפעילה את הכוונה.

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

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

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

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 will load 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 will load 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)

פרמטרים

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

  • 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)

חיפוש מסעדות בסן פרנסיסקו

אפשר להטות עוד יותר את תוצאות החיפוש על ידי ציון פרמטר זום יחד עם מחרוזת השאילתה. בדוגמה הבאה, הגדלת התצוגה ל-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' will return too many results
Uri gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street");

Kotlin

// Searching for 'Main Street' will return 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=Google+Sydney@-33.8666,151.1957");
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 examples above

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 examples above

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

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

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

פרמטרים

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

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

    • d לנסיעה (ברירת המחדל)
    • b לרכיבה על אופניים
    • l לרכבים דו-גלגליים
    • w להליכה
  • 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)

מסלול הגעה אל גן החיות טרונגה

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

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 מוצגות תצוגות פנורמיות ממיקומים ייעודיים באזור הכיסוי. אפשר גם לראות תמונות Photosphere שנוספו על ידי משתמשים ואוספים מיוחדים של 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 תשתמש במזהה התצוגה הפנורמית אם יצוינו גם panoid וגם cbll. מזהי התמונות הפנורמיות זמינים לאפליקציות ל-Android דרך האובייקט StreetViewPanoramaLocation.

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

    • bearing: מציין את כיוון המצפן של המצלמה במעלות בכיוון השעון ממזרח. הצפון האמיתי הוא 0, מזרח הוא 90, דרום הוא 180 ומערב הוא 270. ערכים שמועברים ל-bearing יעברו עיגול, כלומר הערכים 0°, ‏ 360° ו-720° יפנו באותו כיוון. כיוון המצפן מוגדר כערך השני מתוך חמישה ערכים מופרדים בפסיקים.
    • zoom: הגדרת רמת הזום של המצלמה. מרחק התצוגה שמוגדר כברירת מחדל הוא 0. זום של 1 יגדיל את ההגדלה פי שניים. הזום מוגבל בין 0 לבין רמת הזום המקסימלית של התמונה הפנורמית הנוכחית. המשמעות היא שכל ערך שיהיה מחוץ לטווח הזה יוגדר לערך הקיצוני הקרוב ביותר שנמצא בטווח. לדוגמה, הערך -1 יוגדר כ-0. המרחק מהתצוגה הוא הערך הרביעי מתוך חמישה ערכים מופרדים בפסיקים.
    • tilt: מציין את הזווית של המצלמה, למעלה או למטה. הטווח הוא בין -90 ל-90, כאשר 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 will angle 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 will angle 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