Intents של מפות Google ל-Android

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

סקירה כללית

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

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

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

בקשות Intent

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

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

אחרי שיצרתם Intent, תוכלו לבקש שהמערכת תפעיל את האפליקציה הקשורה במספר דרכים. אחת מהשיטות הנפוצות היא להעביר את Intent ל-method 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. אם התוצאה אינה null, יש לפחות אפליקציה אחת שיכולה לטפל בכוונה ואפשר להתקשר אל startActivity() ללא חשש. אם התוצאה היא null, לא כדאי להשתמש ב-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

כל המחרוזות שמועברות לאובייקטים של Intent במפות 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"))

מוצגת מפה

אפשר להשתמש באובייקט ה-Intent 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)

חיפוש מיקום

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

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

פרמטרים

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

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

  • 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 של Intent תטה את התוצאות לכיוון אזור מסוים:

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)

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

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 מגדיר את אמצעי התחבורה. המצב הוא אופציונלי, ואפשר להגדיר אותו לאחת מהאפשרויות הבאות:

    • 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 Street View, צריך להשתמש בכוונה google.streetview. ב-Google Street View יש אפשרות לקבל נופים פנורמיים ממיקומים ייעודיים בכל אזור הכיסוי שלו. יש גם תמונות פנורמיות ב-360° ואוספים מיוחדים של 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 הוא מזהה פנורמה ספציפי. אם יצוינו גם panoid וגם cbll, אפליקציית מפות Google תשתמש במזהה הפנורמה. מזהי פנורמה זמינים לאפליקציות ל-Android מהאובייקט StreetViewPanoramaLocation.

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

    • bearing: מציין את כיוון המצפן של המצלמה במעלות בכיוון צפון. הצפון האמיתי הוא 0, מזרח הוא 90, דרום הוא 180, מערב הוא 270. הערכים שיועברו אל המיקום יגלשו באותו הכיוון, כלומר 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