أغراض خرائط Google لنظام التشغيل Android

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

بالنسبة إلى منصّات نظام التشغيل Android Automotive ‏ (AAOS)، هناك اعتبارات محدّدة وأغراض إضافية متاحة. لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات أغراض خرائط Google لنظام التشغيل Android Automotive Intents.

نظرة عامة

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

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

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

طلبات الأغراض

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

  • الإجراء: يتم استدعاء جميع أغراض "خرائط Google" كإجراء عرض — ACTION_VIEW.
  • معرّف الموارد المنتظم (URI): تستخدم أغراض "خرائط Google" معرّفات URI مرمّزة بعنوان URL تحدّد إجراءً محدّدًا، بالإضافة إلى بعض البيانات التي يتم تنفيذ الإجراء بها.
  • الحزمة: يضمن استدعاء setPackage("com.google.android.apps.maps") أن يعالج تطبيق "خرائط Google" لأجهزة Android الغرض. إذا لم يتم ضبط الحزمة، يحدّد النظام التطبيقات التي يمكنها معالجة 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 أو استبدالها بعلامة الجمع (+).

يمكنك استخدام طريقة encode() في 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 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) لهذا الغرض لتشغيل ميزة التنقّل باتّجاهات مفصّلة في "خرائط 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. الاتجاهات إلى تارونغا حديقة حيوانات

إذا كنت تفضّل عدم دفع الرسوم أو ركوب عبّارة، يمكنك طلب توجيه يحاول تجنُّب هذه الميزات.

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، والغرب هو
      1. يتم تدوير القيم التي يتم تمريرها إلى الاتجاه، أي أنّ 0° و360° و720° تشير جميعها إلى الاتجاه نفسه. يتم تحديد الاتجاه على أنّه القيمة الثانية من بين خمس قيم مفصولة بفاصلة.
    • zoom: تضبط مستوى التكبير/التصغير للكاميرا. يتم ضبط مستوى التكبير/التصغير التلقائي على 0. سيؤدي مستوى التكبير/التصغير 1 إلى مضاعفة التكبير. يتم تثبيت مستوى التكبير/التصغير بين 0 والحدّ الأقصى لمستوى التكبير/التصغير للبانوراما الحالية. يعني ذلك أنّه يتم ضبط أي قيمة تخرج عن هذا النطاق على أقرب قيمة قصوى تقع ضمن النطاق. على سبيل المثال، يتم ضبط القيمة -1 على 0. مستوى التكبير/التصغير هو القيمة الرابعة من بين خمس قيم مفصولة بفاصلة.
    • tilt: تحدّد زاوية الكاميرا، للأعلى أو للأسفل. يتراوح النطاق من -90 إلى 0 إلى 90، حيث تشير 90 إلى الأسفل مباشرةً، وتشير 0 إلى المنتصف على الأفق، وتشير -90 إلى الأعلى مباشرةً.

أمثلة

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

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)
أهرامات في "التجوّل الافتراضي"
الشكل 3. الأهرامات في "التجوّل الافتراضي"