2015년 8월 16일 일요일

안드로이드 앱 개발현황(2015-08-17)

스마트폰의 GPS센서를 사용하여 현재 위치를 출발점으로 지정하였고, 2초마다 GPS센서를 통하여 위치를 갱신하였다. 빨간색 마커를 통하여 사용자의 위치를 나타냈고, 2초마다 지도가 새로고침 돼서 사용자의 위치를 실시간으로 나타냈다.


앞으로는 GPS의 오차범위를 해결하는 것과 인도와 차도를 구분하는 것을 고려할 예정이다.
Tmap API에선 보행자용 경로에 대한 좌표와 차량용 경로에 대한 좌표를 모두 제공하기 때문에 두 좌표를 현재 위치와 비교하면서 인도와 차도를 구분할 예정이다.

2015년 8월 6일 목요일

안드로이드 앱 개발현황(2015-08-07)

주요 기능들은 밑에 글에서 설명이 되었기 때문에 간단하게 추가기능을 설명하겠다.

일단, 앱이 시작이 되면,

처음에는 시작 위치를 받고 시작하려고 했는데, 지도를 넣다보니 그러기가 애매해졌다. 실제 지도 activity에서(TMAP api) 위치를 찾는 부분이 처음에 하는게 아니기 때문에 처음에 위치를 찾아서 저장한다고 할 수 없었다.

그래서 일단 처음 시작할때 '현재 위치를 받는 STT'를 실행하게 되엇다. STT에서 나온 결과물을 확인하고나서, 그 정보내용(String)이 Tmap api으로 넘어가서 지도에서 경로를 찾게 된다.

여기서 '예' , '아니오' 로 정확성의 오차를 한번 더 확인할 수 있게 만들었으며, 아직 앱의 style이나 layout같은것은 건드리지 못했다..

안드로이드 app 개발현황(8월 6일)

길 안내를 위해 Tmap 지도 API를 사용했다. 시중에 여러 지도 API가 존재했지만, 쉽게 출발지와 목적지 사이의 경로와 장소에 대한 좌표를 제공하는 API는 Tmap API 였다.

우선 음성인식을 통하여 목적지의 명칭을 입력받고 그 목적지에 대한 좌표값을 검색하는 함수를 통해 좌표값을 얻는다.
'가천대학교' 라는 명칭으로 좌표검색을 수행했을때의 결과값이다. 현재는 첫 결과값을 목적지로 설정한다. 추후에는 현재위치 등을 고려하여 설정 할 예정이다.



목적지를 '가천대역' 으로 설정한 후 경로를 출력한 모습이다. 출발지를 GPS센서를 통하여 현재 위치를 설정하는 방법으로 구현하려고 했는데 NullPointerException 으로 인해 지금은 출발지를 가천대학교로 설정해뒀다.

좌표계는 WGS84 좌표계를 사용한다. 몇가지 오류에 대한 이유로는 좌표를 사용하여 초기 지도 화면을 설정하는 함수 또는 출발지와 도착지를 설정하는 함수의 인자값이 어떤 함수는 (위도, 경도) 이고 어떤 함수는 (경도, 위도) 여서 경로가 잘 출력되지 않았었다.

또한 현재 위치를 GPS센서로 부터 받아오는 부분에서 GPS센서가 위치를 잘 잡지 못하여 NULL값이 반환돼서 애플리케이션이 비정상적으로 종료되는 문제도 있었다.