Intents של מפות Google ל-Android

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

סקירה כללית

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

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

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

בקשות של Intent

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

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

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

הצגת מפה

יש להשתמש ב-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)

חיפוש מיקום

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

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, אבל מעבירה כתובת כשאילתה String. בעת חיפוש מיקום ספציפי מאוד, קווי האורך והרוחב לא נדרשים. עם זאת, אם אינך יודע את הכתובת המדויקת, ניתן לנסות להטות את תוצאות החיפוש על ידי ציון קואורדינטה. עבור לדוגמה, ביצוע חיפוש כתובת אחר 'רחוב ראשי' יחזיר יותר מדי תוצאות.

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

הוספת קו רוחב/lng ל-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 קואורדינטה קווית/lng.

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

    • 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

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

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

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