내비게이션이 사용 설정되면 Android용 Navigation SDK는 지도의 왼쪽 하단에 현재 속도 제한을 보여주는 속도 제한 컨트롤을 표시합니다. 사용자가 제한 속도를 초과하면 컨트롤이 확장되어 제한 속도 표시 옆에 속도계가 표시되고 속도가 특정 임곗값에 도달하면 알림이 트리거됩니다.
기본적으로 Navigation SDK는 사용자가 제한 속도를 5mph (또는 10kph) 초과하면 경미한 속도 알림을 트리거하고 속도계 텍스트의 색상을 빨간색으로 변경합니다. 사용자가 속도 제한을 10mph (20km/h) 초과하면 주요 속도 알림을 트리거하고 속도계 배경 색상을 빨간색으로 변경합니다.
알림을 트리거하는 기준과 속도계가 표시하는 텍스트 및 배경 색상을 모두 맞춤설정할 수 있습니다. Navigation SDK를 사용하여 설정한 임곗값에 따라 사용자의 속도 정보를 사용할 수도 있습니다. 예를 들어 사용자가 속도 제한을 준수하고 안전을 개선하도록 유도하기 위해 차량 공유 운영자가 속도 정보를 사용할 수 있도록 할 수 있습니다.
속도 알림 기준치 맞춤설정
경미한 속도 알림과 심각한 속도 알림 모두의 속도 알림 기준점을 현재 속도의 속도 제한을 초과하는 백분율로 맞춤설정할 수 있습니다. 지도에 알림이 표시되기 전에 임곗값이 초과되는 시간을 지정할 수도 있습니다.
다음 코드 예에서는 경미한 속도 알림의 기준점을 속도 제한의 5% 초과로, 심각한 속도 알림의 기준점을 속도 제한의 10% 초과로 설정합니다. 경보 기준점이 5초 동안 초과된 후에 지도에 경보가 표시되도록 지정합니다.
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);