본문 바로가기
Project/내비게이션

[OSM]OpenStreetMap을 이용한 내비게이션 만들기 - 1

by 알파쿼카 2024. 9. 9.

[목표]

- 내비게이션의 기본 기능 탑재 (경로 탐색, 장소 검색)

- 사용자의 말을 인식하고 답변을 마커(위)와 리스트(아래)로 표시하기

- 사용자의 개인 차량 동작 로그 표시하기

- 교통정보를 경로 위 또는 지도 위에 마커로 표시하기(사고, 정체, 흐림)

 

[시나리오]

사용자가 내비게이션을 이용하기 위해 지도를 켠다 사용자이름, 이메일, 비밀번호
검색창에서 검색을한다 출발위치, 도착위치
목적지를 말한다  
목적지가 앱에 저장된다 검색기록
현재위치에서 목적지를 설정해서 보여준다  
자동차/도보/자전거를 고른다  
어떤 경로(고속도로)로 갈지 고른다  
경로별로 소요시간을 보여준다  
경로별 교통상태를 보여준다  
가는길에 사고, 공사중 등(알림)이 있는지 보여준다  
경로를 고른다  
현재위치를 보여준다  
현재위치에서 어떻게 이동하는지 보여준다(노드) 종류신경쓸것(비보호, 등)
노드별 사이에 교통량이 어떤지 보여준다(색깔 인덱스)  
현재 위치를 기억해서 이동한다  
지난 이동 거리의 알림은 지운다  
현재 이동해야될 우회전/좌회전/유턴/직진 등을 보여준다 길안내
다음에 이동해야할 교통을 보여준다 길안내
GPS가 바르게 연결되었는지 따로 확인
주차장 :
주차장명, 출발지에서 거리, 도착지에서 거리, 카테고리, 시간별가격, 진입지점여러개
 
주유소 :
주유소명, 방향, 출발지에서 거리, 현재위치에서 거리, 도착지에서 거리, 카테고리, 주유종류, 가격
 
가는길에 방지턱이 있다면 방지턱이 있다고 말해준다  
목적지에 다와간다면 다와간다고 말해준다  
목적지에 도착하면 안내를 종료한다  

 

[특이 사항]
- 임시 50명의 사용자로 가정하여 제작

- 사용자 음성에 대한 응답은 타 업체에서 제공

- 차량 정보에 대한 데이터는 타 업체에서 제공

- 지역 정보(행사)에 대한 데이터는 타 업체에서 제공

 

[중요 사항]

- 주행중 마커(지도 표시)에 집중할 것

- 출발, 도착지 결정 시 경로 줄 것

- 출발, 도착지, 현위치를 watch 하고 있을 것

-현위치 기준으로 마커를 뿌릴 것

- 도착시 경로정보 삭제


[데이터베이스]
- mariaDB 사용

user
(유저 정보)
UP
50개 고정
id 고유 사용자 ID
name 사용자 이름
password 비밀번호
email 이메일 주소
create 계정 생성 날짜 시간
update 정보 수정 날짜 시간
     
operation
(차량 동작)
로그
id 블랙박스 로그 ID
user 사용자 ID
date 날짜
time 시간
contents 내용
location 발생 위치
     
voice
(LLM)
UP
50개 고정
id ID
user 사용자 ID
text 텍스트 -> 음성
voice 음성 -> 텍스트
read 읽음 상태
     
Route
(경로)
UP
50개 고정
id 고유 경로 ID
user 사용자 ID
current_point 현위치
start_point 출발 위치 위경도
end_point 도착 위치 위경도
locations 위경도 목록 (길안내 노드만)
distance 거리 (Km 단위)
route_time 예상 소요 시간 (분 단위)
all 모든 노드 (240913 임시 추가)
     
traffic
(전체 교통정보)
IN DE
고정 아님
id 고유 교통 정보 ID
date 발생 날짜
time 발생 시간
start_point 시작 위치
end_point 종료 위치
content 내용(흐림, 정체, 사고)
rank 중요도
     
Set
(사용자 설정)
UP
50개 고정
id 고유 설정 ID
user 사용자 ID
transport 교통 수단 설정 (1: 자동차 2: 자전거 3: 도보 등)
toll 통행료 회피 여부 (1: 회피안함 회피: 2)
highway 고속도로 회피 여부  (1: 회피안함 회피: 2)
     
POI
(주유소,,)
IN DE
고정 아님
id 지점 ID
location 지점 위경도
name 이름
content 설명
category 카테고리
hour 운영 시간
type 1 : 고정(가게) 2 : 단발성(행사)
     
Alert
(단발성 알림)
IN DE
고정 아님
id 고유 알림 ID
user 사용자 ID
date 알림 생성 날짜
time 알림 생성 시간
content 알림 메시지 (예: "사고로 인해 경로 변경")
read 읽음 여부
location 관련된 항목의 위,경도 (예: 이벤트 ID, 장소 ID 등)
rank 중요도
     
list
(뿌려줄 목록)
UP
50개 고정
id 리스트ID
user 사용자ID
question 질문(텍스트)
result 결과
     
Mark
(뿌려줄 마커)
IN DE
고정 아님
id 고유 교통 정보 ID
start_point 시작 위치
end_point 종료 위치
content 내용(흐림, 정체, 사고)