نيّات "خرائط Google" لأجهزة Android

يعرض تطبيق خرائط Google لأجهزة Android عدة أغراض يمكنك استخدامها لإطلاق خرائط Google في أوضاع العرض أو البحث أو التنقل أو التجوّل الافتراضي. إذا كنت تريد تضمين خريطة في تطبيقك، يرجى الرجوع إلى دليل البدء حول واجهة برمجة تطبيقات Android لخرائط Google.

نظرة عامة

تتيح لك الأهداف بدء نشاط في تطبيق آخر من خلال وصف الإجراء البسيط الذي تريد تنفيذه (مثل "عرض خريطة" أو "عرض الاتجاهات إلى المطار") في عنصر Intent. يدعم تطبيق خرائط Google لنظام التشغيل Android العديد من الأغراض المختلفة، ما يتيح لك تشغيل تطبيق خرائط Google وتنفيذ أحد الإجراءات الأربعة:

  1. عرض خريطة في موقع محدد ومستوى التكبير/التصغير.
  2. يمكنك البحث عن المواقع الجغرافية أو الأماكن وعرضها على خريطة.
  3. طلب الاتجاهات من موقع إلى آخر. يمكن إرجاع الاتجاهات لثلاثة وسائل نقل: القيادة والمشي وركوب الدراجات.
  4. عرض صور بانورامية في التجوّل الافتراضي من Google.

توضّح هذه الصفحة الأهداف التي يمكنك استخدامها مع تطبيق "خرائط Google" لنظام التشغيل Android. لمزيد من المعلومات عن فلاتر Intent وIntent أو ملفات Intent الشائعة على نظام Android الأساسي، يُرجى الاطّلاع على مستندات مطوّري برامج Android.

طلبات النية

لتشغيل "خرائط Google" بهدف، يجب أولاً إنشاء كائن Intent مع تحديد الإجراء ومعرّف الموارد المنتظم (URI) والحزمة الخاصة به.

  • الإجراء: تُعرَف جميع أغراض "خرائط Google" على أنّها "إجراء عرض" — ACTION_VIEW.
  • معرّف الموارد المنتظم (URI): تستخدم أغراض "خرائط Google" عنوان 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 الخاص بك. إذا لم تكن النتيجة فارغة، يكون هناك تطبيق واحد على الأقل يمكنه معالجة الهدف ويمكن طلبه بأمان 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

يجب ترميز كل السلاسل التي تم تمريرها إلى أغراض خرائط Google باستخدام معرّف الموارد المنتظم (URI). على سبيل المثال، يجب أن تصبح السلسلة "1st & Pike, Seattle" 1st%20%26%20Pike%2C%20Seattle. يمكن ترميز المسافات في السلسلة باستخدام %20 أو استبدالها بعلامة الجمع (+).

يمكنك استخدام الطريقة parse() android.net.Uri لترميز السلاسل. مثلاً:

لغة 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)

المعلّمات

بالإضافة إلى المَعلمات المستخدَمة لعرض الخريطة، يتيح محرّك بحث Google استخدام المَعلمات التالية:

  • تحدّد السمة 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 الغرض إلى تحيز النتائج نحو منطقة معينة:

لغة 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 Codes.

لغة 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 أدناه الانتقال باتّجاهات مفصّلة إلى حديقة حيوانات Taronga في مدينة سيدني بأستراليا:

لغة 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)

عرض بانوراما للتجوّل الافتراضي

استخدِم الغرض من google.streetview لتشغيل ميزة "التجوّل الافتراضي من Google". توفر ميزة "التجوّل الافتراضي من Google" مشاهد بانورامية من مواقع جغرافية محدّدة في جميع منطقة التغطية. وتتوفر أيضًا الصور البانورامية التي يساهم بها المستخدمون، ومجموعات صور "التجوّل الافتراضي" الخاصة.

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). سيعرض التطبيق الصورة البانورامية القريبة من هذا الموقع. نظرًا لتحديث صور التجوّل الافتراضي بشكل دوري، وقد يتم التقاط الصور من مواضع مختلفة قليلاً في كل مرة، فمن الممكن أن يتم التقاط موقعك في بانوراما مختلفة عند تحديث الصور.

  • panoid هو معرّف بانوراما محدّد. ستستخدم خرائط Google معرّف البانوراما إذا تم تحديد كل من panoid وcbll. تتوفّر معرّفات البانوراما لأي تطبيق Android من الكائنStreetViewPanoramaLocation.

  • cbp هي مَعلمة اختيارية تضبط الاتجاه الأولي للكاميرا. تتضمّن المعلَمة cbp 5 قيم مفصولة بفواصل، وجميعها اختيارية. القيم الأكثر أهمية هي القيم الثانية والرابعة والخامسة التي تضبط الاتجاه والتكبير/التصغير والإمالة على التوالي. القيم الأولى والثالثة غير متوافقة، ويجب ضبطها على 0.

    • bearing: يشير إلى اتجاه بوصلة الكاميرا في درجات في اتجاه عقارب الساعة من الشمال. يساوي الشمال الحقيقي 0، بينما يساوي الشرق 90، والجنوب 180، والغرب 270. وسيتم التفاف القيم التي تم تمريرها إلى الحامل؛ أي 0 درجة و360 درجة و720 درجة كل النقاط في نفس الاتجاه. يتم تعريف المحمل على أنه الثانية من خمس قيم مفصولة بفواصل.
    • zoom: لضبط مستوى تكبير/تصغير الكاميرا يتم ضبط مستوى التكبير/التصغير الافتراضي على 0. سيؤدي التكبير/التصغير 1 إلى مضاعفة التكبير. يتم تثبيت التكبير/التصغير بين 0 والحد الأقصى لمستوى التكبير للبانوراما الحالية. وهذا يعني أن أي قيمة تقع خارج هذا النطاق سيتم تعيينها إلى أقرب أقصى يقع داخل النطاق. على سبيل المثال، سيتم تعيين قيمة -1 على 0. التكبير/التصغير هو الرابع من خمس قيم مفصولة بفواصل.
    • tilt: لتحديد زاوية الكاميرا، لأعلى أو لأسفل. تتراوح

أمثلة

في ما يلي بعض الأمثلة على استخدام القصد من ميزة "التجوّل الافتراضي".

لغة 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)

الأهرامات في ميزة "التجوّل الافتراضي"