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

إخلاء المسؤولية

سيتغير هذا المنتج/الميزة ولا يخضع لأي اتفاقية مستوى خدمة أو سياسة إيقاف نهائي. وتخضع عملية التنفيذ للتغيير في الإصدارات المستقبلية.

في ما يتعلق بنماذج البرامج و/أو ملفات البيانات و/أو رمز المصدر المصاحب لهذه المستندات: يتم تقديم هذا المنتج "كما هو" وبدون أي نوع من ضمانات، وتُخلي Google مسؤوليتها صراحةً عن جميع الضمانات، سواء كانت صريحة أو ضمنية أو قانونية أو خلاف ذلك، بما في ذلك على سبيل المثال لا الحصر ضمانات مطابقة الأوصاف والصلاحية لغرض معيّن وعدم انتهاك أي حقوق متعلقة بهذا المنتج.


من خلال أغراض Android Automotive، يمكنك إطلاق ميزة التنقّل في "خرائط Google".

لمزيد من المعلومات، يُرجى الاطّلاع على أهداف "خرائط Google" لنظام التشغيل Android.

لمزيد من المعلومات حول إتاحة تطبيقك للمركبات التي تعمل إما بنظام التشغيل Android Auto أو نظام التشغيل Android Automotive، يمكنك الاطّلاع على Android للسيارات.

نظرة عامة

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

طلبات الأهداف

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

  • الإجراء: يُطلق على جميع الأغراض في "خرائط Google" اسم إجراء "عرض" ACTION_VIEW.

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

  • الطرد: يضمن الاتصال بـ setPackage("com.google.android.apps.maps") أن يعالج تطبيق خرائط Google لنظام التشغيل Android Intent. إذا لم يتم ضبط الحزمة، يحدد النظام التطبيقات التي يمكنها معالجة Intent. وفي حالة توفر العديد من التطبيقات، قد تُسأل عن التطبيق الذي تريد استخدامه.

بعد إنشاء Intent، يمكنك أن تطلب من النظام تشغيل التطبيق ذي الصلة بعدّة طرق. ومن الطرق الشائعة تمرير Intent إلى الطريقة [startActivity()]. سيطلق النظام تطبيق "خرائط Google" في هذه الحالة، ويبدأ النشاط المقابل.

// Create a Uri from an intent string. Use the result to create an Intent.
Uri mapIntentUri =
Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
// Create an Intent from mapIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
// 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، قد يتعطّل تطبيقك. ولهذا السبب، عليك أولاً التأكّد من أنّ تطبيق الاستلام قد تم تثبيته قبل تقديم أحد هذه الأغراض للمستخدم.

للتأكّد من أنّ أحد التطبيقات متاح لتلقّي intent، يمكنك استدعاء [resolveActivity()] على عنصر [Intent]. إذا لم تكن النتيجة خالية، يكون هناك تطبيق واحد على الأقل يمكنه معالجة الغرض ويمكن طلبه بأمان [startActivity()]. إذا كانت النتيجة فارغة، يجب عدم استخدام الغرض، وإيقاف الميزة التي تستدعي الغرض، إن أمكن.

if (mapIntent.resolveActivity(getPackageManager()) != null) {
...
}

على سبيل المثال، لإطلاق التنقل خطوة بخطوة إلى حديقة حيوانات Taronga في سيدني، يمكنك استخدام الكود التالي:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}

سلاسل طلبات البحث بترميز URI

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

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

Uri mapIntentUri = Uri.parse("google.navigation:q=" + Uri.encode("1st & Pike, Seattle"));

تشغيل ميزة التنقّل باتّجاهات مفصّلة

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

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

المَعلمات

لتفعيل ميزة التنقّل، استخدِم place أو q مع waypoints، وهي خطوة اختيارية. لوضع علامة على نقطة الطريق كمحطة شحن اختياريًا، يُرجى الاطّلاع على المقالة إرسال خطة رحلة مركبة كهربائية إلى "خرائط Google".

  • q يضبط نقطة النهاية لعمليات البحث المتعلقة بالتنقّل. يمكن أن يكون هذا خط عرض/خط طول أو عنوان بتنسيق استعلام. إذا كانت سلسلة استعلام تعرض أكثر من نتيجة واحدة، فسيتم تحديد النتيجة الأولى.

  • يضبط place نقطة النهاية على المنزل أو العمل. حدد المنزل للانتقال إلى منزل المستخدم، والعمل للانتقال إلى مكان عمل المستخدم.

  • يحدّد avoid الميزات التي يجب محاولة تجنُّبها. يُعد avoid اختياريًا ويمكن ضبطه على واحد أو أكثر مما يلي:

    • t مقابل رسوم العبور
    • h للطرق السريعة
    • f للعبّارات
  • تحدد waypoints مكانًا وسيطًا واحدًا أو أكثر لتوجيه الاتجاهات إلى الوجهة النهائية المحددة في q. يمكنك تحديد نقاط طريق متعددة باستخدام رمز الشرطة الرأسية (|) للفصل بين الأماكن، مثلاً Berlin,Germany|Paris,France. يمكنك استخدام العديد من نقاط الطريق حسب الحاجة. ستتم إضافة نقاط الطريق إلى المسار بنفس الترتيب الذي تم إدراجها فيه في عنوان URL. يمكن أن تكون كل نقطة طريق إما عنوانًا أو إحداثيات لخطوط العرض/الطول مفصولة بفواصل؛ ويمكنك أن يكون لديك عناوين وإحداثيات خطوط الطول/العرض للغرض نفسه. يجب أن تكون السلاسل بدون عنوان URL، لذلك يجب تحويل نقاط الطرق مثل "برلين، ألمانيا|باريس،فرنسا" إلى Berlin%2CGermany%7CParis%2CFrance.

أمثلة

سيطلب هذا Intent التنقّل باتّجاهات مفصّلة إلى حديقة حيوانات Taronga في مدينة سيدني بأستراليا:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

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

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

أو إذا كنت تفضّل الانتقال إلى منزلك، استخدِم:

Uri mapIntentUri = Uri.parse("google.navigation:place=home");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

لإطلاق ميزة التنقّل باتّجاهات مفصّلة بالترتيب إلى العناوين الثلاثة التالية، اضبط "حديقة حيوانات تارونغا" كالوجهة النهائية q، و"دار أوبرا سيدني" وGoogle كنقاط الطريق:

  1. Google سيدني

  2. دار أوبرا سيدني

  3. حديقة حيوانات تارونغا، سيدني أستراليا

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7CSydney+Opera+House");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

على غرار q، يمكنك تمثيل أي من نقاط الطرق باستخدام خطوط طول وخطوط عرض مفصولة بفواصل بدلاً من استخدام عنوان. على سبيل المثال، لتشغيل نفس عملية التنقل مع تمرير خطوط الطول والعرض لدار أوبرا سيدني بدلاً من العنوان:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7C-33.856159,151.215256");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

إرسال خطة رحلة مركبة كهربائية إلى "خرائط Google"

استخدم غرض التنقل متعدد الوجهات هذا لتحديد بعض الوجهات كمحطات شحن للمركبات الكهربائية (EV). ويساعد هذا الهدف، الذي يعمل على توسيع الهدف متعدد نقاط الطرق، السائقين في الحفاظ على شحن بطارية السيارة الكهربائية كافٍ للوصول إلى وجهاتهم من خلال مزامنة معلومات محطات الشحن بين تطبيقات التخطيط لرحلات المركبات الكهربائية و"خرائط Google".

بالنسبة إلى محطات الشحن، النية للرحلة:

  • يجب أن يحتوي على اسم وخط الطول والعرض
  • قد يحتوي هذا الخيار على ناتج الطاقة اختياريًا، لاستخدامه في احتساب وقت الشحن.

تستخدم Google اسم محطة الشحن وخط الطول والعرض للعثور على مكان محطة شحن مطابق لعرض بيانات وافية، مثل أنواع الموصِّلات وإجماليات السرعة والسرعات ومدى توفّرها في الوقت الفعلي وطرق الدفع المتوافقة ونقاط الاهتمام المضيفة. على سبيل المثال، اتجاهات القيادة داخل مواقف السيارات الخارجية للجزء الأخير من التنقل وساعات العمل والتقييمات. لضمان تطابق محطات الشحن مع بيانات Google، استخدِم <brand name>، على سبيل المثال ChargePoint.

المَعلمات

الوجهة النهائية

لضبط محطة شحن كوجهة نهائية، استخدِم:

  • q: يجب أن يحتوي على قيمة "lat-long" (خط الطول والعرض) لمحطة الشحن.
  • q_type: تشير السمة 1 إلى أنّ الوجهة النهائية هي محطة شحن.
  • q_name: اسم الوجهة النهائية تكون هذه السمة مطلوبة إذا كانت قيمة السمة q_type هي 1.
  • q_power_output_kw: رقم مزدوج بالكيلوواط لناتج الطاقة من محطة الشحن. اختياريّ.

نقاط الطريق

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

لإضافة نقطة طريق واحدة أو أكثر لمحطات الشحن، استخدم المعلمات التالية، وجميعها اختيارية. إذا تم وضع علامة على إحدى الوجهات كمحطة شحن، فإن اسم نقطة الطريق يصبح إلزاميًا لتلك الوجهة.

  • waypoints: قائمة بنقاط الطريق كما هو موضّح في غرض التنقّل باتّجاهات مفصّلة يجب أن تكون قيمة "lat-long" (خط الطول والعرض) لنقاط الطريق في محطة الشحن.

  • waypoint_types: أنواع لكل نقطة طريق محدّدة كرقم تشير القيمة 0 إلى أي محطة (القيمة التلقائية) و1 هي محطة الشحن.

  • waypoint_names: أسماء نقاط الطرق يعد هذا الحقل إلزاميًا لمحطات الشحن.

  • waypoint_power_outputs_kw: أرقام مزدوجة لطاقة محطة الشحن بالكيلوواط بالنسبة إلى محطات الشحن، يمكنك اختياريًا تحديد قيمة ناتج الطاقة في نقطة وسيطة، حيث يتم استخدام هذه القيمة كقيمة احتياطية في حال عدم العثور على المحطة المطابقة. تشير الفتحة الفارغة إلى عدم تقديم أي قيمة.

سلوك تجربة المستخدم (UX)

بالنسبة إلى أهداف الرحلات ذات الوجهات المتعددة، يتم عرض شاشة النظرة العامة على المسار، ولكن لا يبدأ التنقّل تلقائيًا.

لتحقيق غرض منسَّق بشكلٍ صحيح، ستقدِّم "خرائط Google" شاشة نظرة عامة على المسار للرحلة. ستعرض شاشة النظرة العامة على المسار جميع نقاط الطريق والوجهة النهائية من النية، مع اقتراحات الشحن حيثما ينطبق ذلك.

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

عند العثور على تطابق، تستخدم "خرائط Google" بيانات Google لعرض محطة الشحن في واجهة المستخدم (UI) وتقديم اقتراحات الشحن لمحطة الشحن. وإذا لم يتم العثور على تطابق، سيتم استخدام البيانات المقدَّمة بغرض محطة شحن (خط الطول والعرض وناتج الطاقة) لعرض محطة الشحن هذه في واجهة المستخدم وتقديم اقتراح للشحن في محطة الشحن هذه.

أمثلة

انتقل إلى وجهة نهائية عبر محطات شحن متعددة

ينتقل الغرض التالي إلى الوجهة النهائية، ميناء ماكواري نيوساوث ويلز، عبر محطتَي شحن، ChargePoint وEvie.

الوجهات بالترتيب:

  1. محطة شحن ChargePoint (الموقع: -32.9599188,151.6240806، خرج الطاقة: 6.6 كيلوواط)

  2. محطة شحن Evie (الموقع: -31.9432539,152.4699808، ناتج الطاقة: 350 كيلوواط)

  3. بورت ماكواري نيوساوث ويلز

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=Port+Macquarie+NSW"
            + "&waypoints=-32.9599188%2C151.6240806%7C-31.9432539%2C152.4699808"
            + "&waypoint_types=1%7C1"
            + "&waypoint_names=ChargePoint+Charging+Station%7CEvie+Charging+Station"
            + "&waypoint_power_outputs_kw=6.6%7C350");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

ناتج الطاقة غير معروف

في حال كانت قيمة ناتج الطاقة غير معروفة، اترك الفتحة المعنية في "waypoint_power_outputs_kw" فارغة. وإذا كانت كل الخانات فارغة، لن تحتاج إلى تحديد المعلَمة waypoint_power_outputs_kw.

الوجهات بالترتيب:

  1. محطة شحن ChargePoint (الموقع الجغرافي: -32.9599188,151.6240806، ناتج الطاقة: غير معروف)

  2. بورت ماكواري نيوساوث ويلز

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=Port+Macquarie+NSW"
            + "&waypoints=-32.9599188%2C151.6240806"
            + "&waypoint_types=1"
            + "&waypoint_names=ChargePoint+Charging+Station");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

وضع علامة على الوجهة النهائية كمحطة شحن

لوضع علامة على الوجهة النهائية كمحطة شحن، حدِّد المعلَمات q_type وq_name وq_power_output_kw.

الوجهات بالترتيب:

  1. حديقة حيوانات تارونغا، سيدني أستراليا

  2. محطة شحن ChargePoint (الموقع الجغرافي: -32.9599188,151.6240806، ناتج الطاقة: غير معروف)

  3. محطة شحن Evie (الموقع: -31.9432539,152.4699808، ناتج الطاقة: 350 كيلوواط)

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=-31.9432539,152.4699808&q_type=1&q_name=Evie+Charging+Station&q_power_output_kw=350"
            + "&waypoints=Taronga+Zoo%2C+Sydney+Australia%7C-32.9599188%2C151.6240806"
            + "&waypoint_types=0%7C1"
            + "&waypoint_names=%7CChargePoint+Charging+Station"
            + "&waypoint_power_outputs_kw=%7C");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);