안녕하세요.
길찾기 샘플 소스로 테스트 중입니다.
안전 운행 모드 관련 해서 문의 사항 입니다.
-
shouldPlayVoiceGuide callback 은 어떤 경우에 발생을 하는 건가요?
-
shouldPlayVoiceGuide callback 이 호출 되었을때 로그로 확인 시 2가지의 safety code 가 함께 들어 오지만 사운드는 그중에 한가지만 나옵니다. 이렇게 다중의 safety code 가 있을경우 어떤 satety code sound 가 play 되는지 알수 있을까요?
ex ) aGuidance.safetyGuide?.safetiesOnGuide : [Camera(KNSafetyCode_SignalAndSpeedViolationCamera) : pos(314752.0, 542940.0), limit(50), violation(true), Camera(KNSafetyCode_ParkingViolationCamera) : pos(314826.0, 542830.0), limit(60), violation(false)]
2개의 안전 운전 코드(KNSafetyCode_SignalAndSpeedViolationCamera, KNSafetyCode_ParkingViolationCamera) 가 한번에 들어 왔지만 사운드 확인 시 신호과속에 대한 안내만 합니다.
-
특정 구간을 지나갔다는 것을 알수 있을까요?
ex ) 보행자 사고 다발 구간 진입/진출 시 알수 있는 방법
어린이 보호 구역 진입/진출 시 알수 있는 방법 등
빠른 확인 부탁 드립니다.
안녕하세요. 카카오모빌리티의 기술 제휴 담당자입니다.
1 → shouldPlayVoiceGuide는 안내에 맞는 음성이 발화되는 시점에 발생하도록 되어있습니다
2 → KNGuideVoice의 voiceCode와 guideObj를 참고하셔야 합니다
(https://developers.kakaomobility.com/docs/android-ui-ref-kotlin/class-KNGuide_Voice/)
위에서 말씀주신 데이터를 가져온다고 한다면 safetyCode는 아래와 같이 확인 하실 수 있습니다
if (aVoiceGuide.voiceCode == KNVoiceCode.KNVoiceCode_Safety) { val safetyCode = (aVoiceGuide.guideObj as KNSafety).code }
3-1 → 안전운전모드의 주변 정보를 가져오기 위해서는 KNGuidance_SafetyGuideDelegate.guidanceDidUpdateSafetyGuide 에서 확인하셔야 하며, KNGuide_Safety의 KNSafety를 그에 맞는 타입으로 형변환 하셔서 가져오셔야 합니다
위의 질문에서 처럼 KNSafety_Camera의 speedLimit을 가져오기 위해서는 아래와 같이 확인하실 수 있습니다
(임의로 0번 인덱스를 선택 하였습니다)
val limit = (aSafetyGuide.safetiesOnGuide[0] as KNSafety_Camera).speedLimit
3-2 → violation도 위와 마찬가지로 형변환을 하셔야 하며, 아래 코드처럼 가져오실 수 있습니다 (임의로 0번 인덱스를 선택 하였습니다)
val onViolation = (aSafetyGuide.safetiesOnGuide[0] as KNSafety_Camera).onViolation
3-3 → 3-2항목의 onViolation 항목으로 현재 위반 상태 여부를 확인하실 수 있습니다 (true - 위반)
감사합니다.
답변 감사합니다.
3번의 경우 자체적으로 확인이 되어서 제가 다른 문의로 수정을 했습니다.
- 특정 구간을 지나갔다는 것을 알수 있을까요?
ex ) 보행자 사고 다발 구간 진입/진출 시 알수 있는 방법
어린이 보호 구역 진입/진출 시 알수 있는 방법 등
확인 부탁드립니다.
안녕하세요,
특정 구간의 진입/진출을 알기 위해서는 현재 위치에서부터 해당 구간의 거리(경로상 거리)를 계산해야 하며,
아래와 같이 구할 수 있습니다
guidanceDidUpdateSafetyGuide의 KNGuide_Safety에서 특정 구간의 정보를 받은 후,
해당 구간의 location을 가져옵니다.
guidanceDidUpdateLocation을 통하여 KNGuide_Location(경로상 현재 위치)를 가져와
현재 위치에서 해당 구간까지의 거리를 계산하여야 합니다
계산 방법은 아래와 같습니다 (임의로 0번 인덱스를 선택하였습니다)
val dist = KNGuide_Location.location.distToLocation(KNGuide_Safety.safetiesOnGuide[0].location)
남은 거리를 나타내며, 단위는 미터(m)입니다
특정 구간의 코드는 아래 링크에서 확인하실 수 있습니다
https://developers.kakaomobility.com/docs/android-ui-ref-kotlin/enumerate-KNSafetyCode/
감사합니다.