Open Uh-hub opened 2 years ago
10/23
https://conkjh032.tistory.com/249 회원가입 및 로그인 화면 제작하기
https://epdev.tistory.com/8 https://owly-expbook.tistory.com/21 지도 API 구글, 카카오, 네이버를 비교 네이버/카카오 추천(국내)
https://www.ncloud.com/product/applicationService/maps 네이버 지도 API -directions 기능 필요한지 확인해보기(이건 비용 지불 필요)
https://apis.map.kakao.com/android/ 카카오 지도 API 지도 위에 마커, 라인, 현재 위치 지도 위에 바로 표시 , 나침반 가능 (X?)
Q. 앱은 자바로, 웹은 파이썬으로 만들면 서로 정보를 주고 받을 수 있나..?
로그인, 회원가입 시 화면 - db(my sql)로 생성/PHP 파일 연동
5. PM의 종류 -전동 킥보드 / 전동 이륜평행차(세그웨이) / 전기자전거(스로틀 방식) (https://www.jeonju.go.kr/index.9is?contentUid=9be517a776a6b53f01771d5c61783864)
=> 선택지: 전체/전동 킥보드/전동 외륜보드/전동 이륜보드/전동 이륜평행차/전동스케이트보드 /전기자전거
Q.PM으로 정의한 종류가 무엇인지? PM 정의가 확실하지 않음 -> 내 생각: 위에 선택지 중에 회사가 최소 3개 있으면 포함
=> 정할 필요 없음/나는 그냥 있다 하고 만들면 됨
6. https://www.youtube.com/watch?v=1hfhUmb_bRc 이거 참고해서 만들어서 제출 https://www.youtube.com/watch?v=ra3EpF9WTow
0찹 - 내비게이션 기능은 없음
Q. 내비게이션 기능을 넣나.? -> 넣어야 함(db에 5,10초씩 정보 전송)
https://www.youtube.com/watch?v=UZj3Wvw9eBE 실시간 위치 전송 중 GPS 기반 위치 서비스 2번째 방법은 더 찾아보기
내비게이션이라고 하면 먼거리는 버스를 타서 이동하게 해야 할까? 아니면 도보만 가능하게 해야 할까? PM을 타려고 버스나 지하철을 타러 가지는 않을 거라 생각함 + 사용자의 현재 위치/입력한 위치의 1km 반경 내에 있는 PM 주차장 및 PM만 뜨게 할 예정임 => 걸어서 가는 실시간 기능만 구현하기
Q> 각 회사별로 결제 방법도 다르고 운전면허 필요 여부도 다른데 어디에 맞추면 좋을까요? 서비스 가능 구역에 제한이 있던데 그 부분까지 구현을 해야 할까요?
구현 방법 API 정하기
https://lpla.tistory.com/131 URL Scheme 사용하기
경로는 카카오 API, 검색은 네이버 API 가능?
https://api.ncloud-docs.com/docs/ai-naver-mapsdirections-driving 네이버 Driving 5 https://api.ncloud-docs.com/docs/ai-naver-mapsdirections15-driving 네이버 Driving 15
안드로이드의 위치 정보 서비스(2가지 방법) https://manorgass.tistory.com/82 여기에서 FusedLocationProvider(통합 위치 제공자)사용
https://help.dfinery.io/hc/ko/articles/360039757433-%EB%94%A5%EB%A7%81%ED%81%AC-Deeplink-URI%EC%8A%A4%ED%82%B4-%EC%9C%A0%EB%8B%88%EB%B2%84%EC%85%9C-%EB%A7%81%ED%81%AC-%EC%95%B1%EB%A7%81%ED%81%AC-%EA%B5%AC%EB%B6%84%EA%B3%BC-%EC%9D%B4%ED%95%B4 URL Scheme 의 정의 - URL Scheme 은 외부 앱 및 웹 사이트에서 그 앱을 열어서 수행하는 방식
https://sw-ke.facebook.com/groups/codingeverybody/permalink/1327874893919710/ 인도를 안내해주되, url scheme이 아닌 오픈 api 이용하여 길찾기 기능을 구현할 수 있는 T 맵 발견
https://www.youtube.com/watch?v=wx26aJFHAUc 이거 보고 지도 참고하기
경로 추천 및 마커 표시- T맵 지도 API 이용 https://tmapapi.sktelecom.com/main.html#android/sample/androidSample.sample12
Fused Location Provider API 사용(google / 정확한 위치 제공 및 배터리 효율 상승) https://developers.google.com/location-context/fused-location-provider
키워드로 장소 검색 - T맵 API 사용 https://tmapapi.sktelecom.com/main.html#android/sample/androidSample.sample12
안드로이드 스튜디오
각 PM 별로 GPS 정보가 있고 db에 주차장의 모서리 위도와 경도가 저장되어 있는데 그 사각형 안으로 들어갔다는 gps 정보가 db로 보내졌을 때 반납이 완료 되었다는 창을 띄우기
T맵 API 이용하여 경로 추천, 마커 표시, 키워드로 장소(주차장) 검색
google Fused Location Provider API를 이용하여 T맵 경로 추천
위치 검색 창 -장소를 입력 받고 비슷한 장소가 뜨면 그 곳을 누르게 하고 누르면 그 장소의 위도와 경도를 받아서 지도에 표시
T맵 -> SDK 파일 다운 받으려 했으나 보안 상의 에러가 뜸 => 카카오 지도 API로 전환
카카오 API 적용 중, build.gradle 파일 sync 에러 발생 -> build.gradle(Project~)에 의존성 추가하고 있었음 => build.gradle(Module:~)로 변경 => 성공
카카오 지도 API 에서 google / 네이버로 변경할 지 고민 중 -> 1)카카오 지도 API에서 해결 되지 않던 에러 "안드로이드 Can`t load DaumMapEngineApi.so file 오류" "지도 SDK는 x86, x86_64를 지원 하지 않습니다. 따라서 avd에서는 정상으로 구동 되지 않습니다. " 라는 것을 뒤늦게 알게 되었고, 안드로이드 기기가 없기에 화요일에나 구동해볼 수 있을 것으로 보임 ->(....바꿀까...) https://devtalk.kakao.com/t/can-t-load-daummapengineapi-so-file/65740/3
우선 공기계 올 때까지 에러 신경 쓰지 말고 마커 및 길찾기 기능 구현 https://github.com/mtjin/LandKorea_AndroidApp/tree/master/MapoGreen/app/src/main/res 이 분 코드 참고해보고 되지 않는다면 google로 변경
깃 https://github.com/wonderful-coding-life/sample.google.map/blob/master/app/src/main/java/com/example/map/MainActivity.java 유튜브 https://www.youtube.com/watch?v=mLqBNdqYEQw 구글맵 지도 API로 바꿈, 위 깃허브 코드 참고 중
구글맵 연결 및 지도 띄우기 성공
https://manorgass.tistory.com/82 코드 https://www.youtube.com/watch?v=XwW7WDOAiWE 유튜브
https://kay0426.tistory.com/3 커스텀 마커 등록 방법
git에서 commit, push를 시도하다, merge를 해야 한다길래 버튼을 눌렀다가 마지막에 취소라고 생각했던 걸 눌렀는데 에러가 너무 많이 뜨고 알 수 없는 코드가 많이 생겨서 안드로이드 스튜디오에서 새로운 프로젝트를 생성하여 다시 클론 해옴
11/7 commit -> 바다에 현 위치가 뜸(원인: IntroPage에서 바로MainActivity로 넘어가게 돼서 라고 생각/로그아웃 후, 회원 가입 하려고 했으나 회원 가입 실패라고 뜸) -> 로그인 후, map_permission으로 연결해두었으나, IntroPage는 혹시 몰라서 MainActivity로 이동하는 것을 수정하지 않음) ->수정 해서 IntroPage에서 허용 창으로 넘어가게 했으나 갑자기 구글 본사 위치를 반환함(@.@;;)
여기서 저 0이 default 값인데 default 값이 출력 되어서 구글 본사 위치를 반환 한 것임 double latitude = intent.getDoubleExtra("latitude", 0); double longitude = intent.getDoubleExtra("longitude", 0);
https://jeongchul.tistory.com/370 위치정보를 db 보내기
https://webnautes.tistory.com/1249 코드 참고하여 현재 위치 띄우기 완료 https://stackoverflow.com/questions/45783467/com-google-android-gms-maps-model-markeroptions-on-a-null-object-reference (com.google.android.gms.maps.model.MarkerOptions)' on a null object reference에러 발생 -> @Override public void onMapReady(GoogleMap googleMap){ this.map = googleMap; } 으로 수정 -> 에러 해결
계획 대로 라면 주차장 정보가 담겨있는 csv 파일 안에 있는 정보를 mySQL로 넘기고 mySQL로부터 데이터를 가져와서 마커를 띄우는 게 1차적인 목표
광주광역시공영주차장 현황~.csv 파일(예시 데이터)
id = 주차장 번호 name = 주차장 이름 address = 주차장 주소 latitude = 위도 좌표 longitude = 경도 좌표 photo = 주차장 사진
주차장 별 pm 현황 gcooter(지쿠터) = 공유 킥보드 deer(디어) = 공유 킥보드 beam(빔) = 공유 킥보드 talang(타랑께) = 공유 자전거 kickboard = 공유 킥보드 bicycle = 공유 자전거
= > 현재 csv 파일을 json 파일로 변환함
https://dev-dain.tistory.com/78 csv 파일 -> json 파일 변환 후 마커를 바로 띄움
https://kay0426.tistory.com/3 이거 도전해보기
https://www.youtube.com/watch?v=8r1W_7nuo2U MySQL 설치 및 연동
https://yoo-hyeok.tistory.com/16 안드로이드 <-> PHP <-> MySQL 연동
XAMPP(PHP)를 실행시키는데 MySQL을 실행하려고 하면 "Error: MySQL shutdown unexpectedly." 발생 -> 구글링 결과, port가 3306, 3307 모두 이미 동작 중이었다. https://jeffrey-oh.tistory.com/141 -> config에서 my.ini 파일에서 client와 mysqld port를 3305로 바꾸었더니 동작됨
위의 방법대로 하면 실행은 되는데, MariaDB에서 사용중이라는 경고문구와 MySQL WILL NOT start without the configured ports free! You need to uninstall/disable/reconfigure the blocking application or reconfigure MySQL and the Control Panel to listen on a different port 라는 경고 문구가 떴다. 그래서 mariaDB의 port를 3307로 바꾸어두고, 서비스 -> mariaDB를 재시작 시키고 xampp의 mysql port를 3306으로 바꾸어 실행했더니 되었다. 에러없이 실행 되었다. https://jeffrey-oh.tistory.com/141
메모장 등의 문서편집기(NetBrain 등)으로 프로그램 작성 -> htdocs 폴더에 파일이름.php 로 저장 인코딩 옵션은 UTF-8로 선택
http://localhost/파일이름.php 로 실행하면 됨
에러 : MySQL error: 'Access denied for user 'root'@'localhost' 비밀번호를 아무리 쳐도 안돼서 구글링도 하고 유튜브 영상도 보면서 다 따라 해 보아도 이 에러가 뜨길래 php 강의를 들었다. 처음에는 비밀번호가 없으니까 enter를 치라는 말을 못 들어서 몇 시간 동안 헤매었다는 것을 깨달았다.
mysql에서 table을 만들고 csv 파일을 업로드 까지 했지만 위의 에러가 또다시 발생했다. 그 이유는 wampserver의 default db가 mariaDB였기 때문이다. -> 이것을 mysql로 바꾸어주면 된다
하핳하하하하하ㅏㅎ하ㅏ하하ㅏ핳하하하하하하하하하하하하하하하하하 구글 지도 api 에 길찾기 기능을 이용하는 것이 우리나라는 금지 되어있다는 것을 마커까지 다 띄운 다음에야 발견했다. ......^^행복하다. 서둘러 Tmap으로 api를 바꾸어야 할 것 같다.
현재 위치 주변의 마커를 클릭 -> 그 위치 까지의 최단 거리를 그리고 아래에 창 형식으로 띄우기(길찾기 1번 화면)
https://mailmail.tistory.com/21
지도 api를 바꾸지 않아도 될 것 같다. google direction api를 이용하면 될 것 같다
https://stickode.com/detail.html?no=2066 구글 지도 api 중 direction api를 사용하려고 하였으나 http://www.happycgi.com/16327 우리나라는 이용할 수 없다는 사실 확인 했음 => 구글 지도 api는 그대로 이용하되, t맵의 길찾기 기능을 이용해보려고 한다. https://stickode.com/detail.html?no=2066
지도에서 마커를 클릭하면 현재 위치(x)를 클릭한 주차장 위치(y)를 선으로 연결한 화면을 띄워준다. 문제: x로 창 닫기를 누르지 않는 이상, 현재 위치를 업데이트 하면서 창이 떴으면 좋겠음
피그마에서 아이템 가져오는 방법
아래에 xml 코드
https://jinseongsoft.tistory.com/34 t맵 길찾기 참고
demo
틀 구성
각 PM 별 QR 코드 생성 QR 코드 몇 개를 생성하여 그 QR 코드들이 이용자가 이용할 PM이라고 생각하고 만들기 PM 주차장 또한 임의의 장소를 주차장으로 설정하기
앱
1) 앱 로고 화면 2) 로그인/회원가입 화면
위치 정보 액세스
(앱)에서 내 기기 위치에 액세스 하도록 허용하시겠습니까? 팝업 띄우기 (항상 허용/한 번만 허용/ 거부 등) [거부 했을 때 이 권한을 거부하는 경우 기기의 기본 기능이 제대로 작동하지 않을 수 있습니다. 띄우기. 그 아래 선택지는 취소/거부] (허용 시) 지도 API 및 마커 띄우기(메인 화면)
마커
이동 시
이용자가 (PM 타고/안타고) 이동할 때, 5,10초 정도마다 실시간 정보 db로 보내기 + 실시간으로 스무스하게 움직이는(이용자의 움직임 예측) API 이용
내 정밀한 위치 기록하는 방법 2가지
4) PM 의 마커를 눌렀을 때, 도착 버튼 생성(PM까지 네비게이션)
5) QR 코드 찍는 버튼 -> QR 코드를 찍기 위해 카메라 이용 권한 받기 -> QR 코드를 찍고 인식하는 화면 띄우기
QR 코드를 찍으면 스트링 형식으로 저장 -> 웹서버와 통신해서 그 스트링(QR코드/PM번호)이 등록되어 있는 전동킥보드라고 인식되면 초록불 띄우며 운행 시작 -> 서버 끊기면 초록불에서 빨간불로 바꾸기
결제 모듈 만들지 않아도 됨
웹
서버에 저장해서 한번에 관제할 수 있는 프로토콜을 개발
화면에 지도를 띄우고 PM의 (위도, 경도)를 불러와서 점/마커로 찍어서 나타내기 로그인 기능(추가적으로 시간 남으면 일정 시간 동안 이용자(관리자)가 이용하지 않으면 로그아웃) + 구현 서버랑 연결이 되어야 함 현재 위치 받아와서 저장/실시간으로 PM 위치 및 지도 뜨길 바람 / 유저 사용자가 맞는지 확인 / (서버에 위치 정보 보내고 마이크로(?) 서비스 도커(?) 위치를 통해서 그 다음 위치를 추적하는 인공지능 모델 개발해서 붙일 예정) 장고 기반으로 백엔드가 돌아가고 프론트엔드는 따로 붙이기
싱크 모듈 만들지 않아도 됨
db는 mysql 등 호환만 잘 된다면 상관무
패키징을 들고 서버로 소켓 통신을 보내고 안드로이드 앱에서 서버로 [사용자 아이디 / pm 전동킥보드 아이디(번호) / 시간 / 현재 위치(경도, 위도) ] 이 시리얼 정보를 보내면 그대로 저장
사용자 별 이용도 그래프(사용자 일, 주, 월 별 사용량 시각화)
웹 화면 상 여러 그래프와 PM 실시간 위치 등 어싱크로노스 프로그래밍(모든 내용들이 따로 작동/비동기 방식)으로 구성 뱀꼬리 길어지는 듯이 PM의 이동 정보를 선으로 표현하기 / 어려울 시, 점으로도 가능
공부 해야 할 내용
QR 코드 생성 방법 암호화 RSE
10/27(수요일) 까지 간단하게 레이아웃 짜본 후, depth, 플로우 차트, 소프트웨어 방법론, 콜백 순서도 작성 환경 / 버전 정보 / 개발 일정 작성해오기 (서버 버전, 파이썬 버전 문제, 도커 미지원 형태의 특정 최신 프레임워크를 사용하는 등의 문제 발생할 수 있으니 꼭 작성)
핸드쉐이킹
비교 앱
카0
:가장 비슷한 앱 :대부분의 PM 사의 PM 위치 및 가격 정보가 나옴 / PM을 이용하려면 그 회사의 앱을 다운 받는 화면으로 이동함
000 따릉이
:서울특별시에서 운영하는 따릉이를 대상으로, 특정 위치를 검색하면 그 위치에 대여 가능한 따릉이/뉴따릉이/e-따릉이의 수가 뜸 :대여 기능은 아직 없음
Q. PM 데이터? 안주는 건가? / 추적 및 속도제한..? 은 안하는 건가?