नेविगेशन की सुविधा चालू होने पर, Android के लिए Navigation SDK, मैप के बाएं कोने में स्पीड लिमिट कंट्रोल दिखाता है. इससे, मौजूदा स्पीड लिमिट दिखती है. अगर कोई उपयोगकर्ता स्पीड लिमिट से ज़्यादा रफ़्तार से गाड़ी चलाता है, तो कंट्रोल बड़ा हो जाता है. इससे, स्पीड लिमिट के बगल में स्पीडोमीटर दिखता है. साथ ही, स्पीड एक तय सीमा तक पहुंचने पर, अलर्ट ट्रिगर होते हैं.
डिफ़ॉल्ट रूप से, Navigation SDK, स्पीड लिमिट से 5 मील प्रति घंटा (या 10 किलोमीटर प्रति घंटा) ज़्यादा रफ़्तार से गाड़ी चलाने पर, मामूली स्पीड अलर्ट ट्रिगर करता है. साथ ही, स्पीडोमीटर के टेक्स्ट का रंग बदलकर लाल कर देता है. यह स्पीड लिमिट से 10 मील प्रति घंटा (या 20 किलोमीटर प्रति घंटा) ज़्यादा रफ़्तार से गाड़ी चलाने पर, बड़ा स्पीड अलर्ट ट्रिगर करता है. साथ ही, स्पीडोमीटर के बैकग्राउंड का रंग बदलकर लाल कर देता है.
अलर्ट ट्रिगर करने के लिए, थ्रेशोल्ड के साथ-साथ स्पीडोमीटर के टेक्स्ट और बैकग्राउंड के रंगों को भी पसंद के मुताबिक बनाया जा सकता है. आपके पास Navigation SDK का इस्तेमाल करके, सेट किए गए थ्रेशोल्ड के हिसाब से, उपयोगकर्ता की स्पीड की जानकारी उपलब्ध कराने की सुविधा होती है. उदाहरण के लिए, राइडशेयर ऑपरेटरों को स्पीड की जानकारी उपलब्ध कराई जा सकती है, ताकि वे अपने उपयोगकर्ताओं को स्पीड लिमिट का पालन करने के लिए बढ़ावा दे सकें और सुरक्षा को बेहतर बना सकें.
स्पीड अलर्ट के लिए थ्रेशोल्ड को पसंद के मुताबिक बनाना
मौजूदा स्पीड की स्पीड लिमिट से ज़्यादा होने के प्रतिशत के तौर पर, मामूली और बड़े, दोनों तरह के स्पीड अलर्ट के लिए, स्पीड अलर्ट थ्रेशोल्ड को पसंद के मुताबिक बनाया जा सकता है. आपके पास यह भी तय करने का विकल्प होता है कि मैप पर अलर्ट दिखने से पहले, थ्रेशोल्ड कितनी देर तक पार किया गया हो.
कोड के इस उदाहरण में, मामूली स्पीड अलर्ट के लिए थ्रेशोल्ड को स्पीड लिमिट से पांच प्रतिशत ज़्यादा और बड़े स्पीड अलर्ट के लिए थ्रेशोल्ड को स्पीड लिमिट से 10 प्रतिशत ज़्यादा सेट किया गया है. इसमें बताया गया है कि अलर्ट थ्रेशोल्ड पांच सेकंड तक पार होने के बाद, मैप पर अलर्ट दिखता है.
float minorSpeedAlertThresholdPercentage = 5; float
majorSpeedAlertThresholdPercentage = 10; double severityUpgradeDurationSeconds =
5;
// Configure SpeedAlertOptions SpeedAlertOptions.Builder
speedAlertOptionsBuilder = new SpeedAlertOptions.Builder();
speedAlertOptionsBuilder.setSpeedAlertThresholdPercentage(
SpeedAlertSeverity.MINOR, minorSpeedAlertThresholdPercentage);
speedAlertOptionsBuilder.setSpeedAlertThresholdPercentage(
SpeedAlertSeverity.MAJOR, majorSpeedAlertThresholdPercentage);
speedAlertOptionsBuilder.setSeverityUpgradeDurationSeconds(severityUpgradeDurationSeconds);
// Set SpeedAlertOptions to Navigator.
navigator.setSpeedAlertOptions(speedAlertOptionsBuilder.build());
स्पीडोमीटर पर स्पीड अलर्ट दिखाने के तरीके को पसंद के मुताबिक बनाना
स्पीड अलर्ट को ज़्यादा ध्यान खींचने वाला बनाने के लिए, हर अलर्ट लेवल के लिए स्पीडोमीटर के डिसप्ले के रंगों को पसंद के मुताबिक बनाया जा सकता है.
यहां दी गई टेबल में, NavigationView क्लास में स्पीड अलर्ट के लिए डिफ़ॉल्ट रंग दिखाए गए हैं:
| एलिमेंट | रंग |
|---|---|
| MinorSpeedAlertBackgroundColorDayMode | 0xffffff(सफ़ेद) |
| MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
| MinorSpeedAlertTextColorDayMode | 0xd93025 |
| MinorSpeedAlertTextColorNightMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
| MajorSpeedAlertTextColorDayMode | 0xffffff(सफ़ेद) |
| MajorSpeedAlertTextColorNightMode | 0xffffff(सफ़ेद) |
आपके पास मामूली और बड़े, दोनों तरह के स्पीड अलर्ट के लिए, स्पीडोमीटर के टेक्स्ट और बैकग्राउंड का रंग तय करने की सुविधा होती है:
SpeedometerUiOptions speedometerUiOptions = new SpeedometerUiOptions.Builder()
.setBackgroundColorDayMode(MINOR, some_color)
.setBackgroundColorNightMode(MINOR, some_color) .setTextColorDayMode(MINOR,
some_color) .setTextColorNightMode(MINOR, some_color)
.setBackgroundColorDayMode(MAJOR, some_color)
.setBackgroundColorNightMode(MAJOR, some_color) .setTextColorDayMode(MAJOR,
some_color) .setTextColorNightMode(MAJOR, some_color) .build();
// Set SpeedometerUiOptions to NavigationView.
navigationView.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
navigationView.setSpeedometerEnabled(true);
// Set SpeedometerUiOptions to SupportNavigationFragment.
supportNavigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
supportNavigationFragment.setSpeedometerEnabled(true);
उपयोगकर्ताओं से स्पीड की जानकारी पाना
अगर आपके ऐप्लिकेशन के लिए, उपयोगकर्ता की स्पीड की जानकारी शेयर करना ज़रूरी है, तो आपके पास Navigation SDK का इस्तेमाल करके, उपयोगकर्ता की स्पीड की जानकारी उपलब्ध कराने की सुविधा होती है. उदाहरण के लिए, यह राइडशेयर ऐप्लिकेशन के लिए काम का हो सकता है. इसमें, ऑपरेटर सुरक्षा को बेहतर बनाने के लिए, उपयोगकर्ताओं की ज़्यादा स्पीड पर नज़र रख सकता है. यह आपके ऐप्लिकेशन में, उपयोगकर्ता को नेविगेशन व्यू दिखाने की ज़रूरत के बिना भी किया जा सकता है.
उदाहरण के लिए, यहां दिए गए उदाहरण में, स्पीड लिमिट से ज़्यादा स्पीड होने पर, स्पीड की जानकारी शेयर की जाती है:
// Existing flow for creating Navigator. NavigationApi.getNavigator();
// Set the SpeedAlertOptions for the MAJOR and MINOR alerts. (Note that the //
severityUpgradeDurationSeconds field is by design not used in this flow.)
SpeedAlertOptions speedAlertOptions = ...;
navigator.setSpeedAlertOptions(speedAlertOptions);
// Implement SpeedingListener. SpeedingListener speedingListener = new
SpeedingListener() { @Override public void onSpeedingUpdated(float
percentageAboveLimit, SpeedAlertSeverity speedAlertSeverity) { ... } };
// Set speedingListener to Navigator.
navigator.setSpeedingListener(speedingListener);