1. 사용자 QR 코드 인식 시 서버와 통신하여 알맞는 지도 보여 줌 (스프링에서 처리)
https://github.com/tinhpv/indoor-navigation-system-qrcode-augmented-reality
- ARCore 및 Azure Spatial Anchor를 사용 (위치 고정)
- https://minquu.tistory.com/230?category=965746 (Azure Spatial Anchors 튜토리얼)
- QR, 실내 내비게이션, 2D 맵, 3D 맵 사용 가능한 것 같음
- 라이센스 따로 없음
- 우리 팀이 만들고자 하는 앱과 가장 가까움
- 왜 앵커를 썼나? -> 실내 길 찾기 앱을 개발할 때 GPS 신호가 실내에 약하거나 존재하지 않는 경우가 있어서, GPS에 의존하면 안 됨 -> AR 길찾기 앱에서 앵커를 이용해 가상 개체의 위치를 고정하면, 사용자가 이동하거나 방향을 변경하더라도 가상 개체의 물리적 환경을 기준으로 위치가 유지되어서 사용자에게 정확한 AR 경험을 제공 가능 -> 실내 공간을 쉽고 효율적으로 탐색 가능
- GPS가 없는 실내에서의 지도 서비스는 어떻게 할까?
- Wi-Fi / Bluetooth 기반의 실내 위치 측위
Fingerprinting 기반의 위치 측위
삼변측량 기반의 위치 측위
BLE를 이용한 위치 인식
지구 자기장을 이용한 위치 측위
카메라를 이용한 위치 인식
소리를 이용한 위치 인식
조명을 이용한 위치 인식
https://www.yna.co.kr/view/AKR20221206056700530
- 복잡한 건물 안에서 '실내 내비게이션'으로 길 찾는다
- 복잡한 건물 내부를 전자지도로 구축
- 상가마다 호수 부여해서 주소 체계 세분화
- 새로 구축된 실내 전자지도와 여러 실내 측위(위치 파악) 기술(와이파이 방식, BLE 방식 UWB 등)을 결합해 실내내비게이션을 구동
https://github.com/COMSYS/FootPath
- GNU 라이센스이므로 마음껏 사용해도 되는 장점
- QR이 아닌 실내 내비게이션만 있음
https://github.com/RoyceThomasIype/AugmentedRealityIndoorNavigation
- 기본적인 AR 내비게이션 기능만 있는 것으로 추측
- 라이센스 따로 없음
2. 프론트의 로그인 성공, 실패 -> 데이터베이스 정보 select
3. 프론트의 맵 데이터 -> 백엔드로 어떻게 받을 것인지?
- 2D 지도 데이터가 JSON 또는 XML 과 같은 표준 형식이라면, Jackson 또는 Gson 과 같은 라이브러리를 사용하여 Java에서 객체로 구문 분석 및 저장 가능
- React에서 Leaflet, Mapbox 또는 Google Maps API 라이브러리 가져오고, 지도 표시
4. 프론트에서 2D 지도 데이터를 어떻게 전달할 것인지?
- RESTful API를 사용하여 데이터를 백엔드로 전송
Axios, jQuery와 같은 라이브러리를 사용하여 프론트엔드에서 HTTP 요청을 한 다음, 백엔드에서 응답을 받는 것을 포함 - 또는 양식 제출에서 2D 지도 데이터를 포함하거나 WebSocket 연결을 통해 전송 가능
백엔드로 데이터를 전송하기 전에 데이터가 올바르게 포맷 되고 검증 되었는지 확인하는 게 중요함 - React 앱에서 Fetch 와 같은 라이브러리를 이용해서 RESTful API 생성, 이 APU는 사용자가 지도 구성 요소와 상호 작용 할 때 Spring 애플리케이션에 데이터를 보내야 함
5. QR 조회, 생성, 변경, 삭제 처리 -> DB에서 조회, 생성, 변경, 삭제 찾아보기 -> DB와 스프링 연동 (JPA 적용)
- QR 코드 생성에는 "구글의 QR Codes API 에 요청" 또는 "QR 코드를 작성하는 Open Source를 활용해 로컬에서 생성" 2가지 방법이 있음
- 보통은 Zxing (Zebra Crossing) 사용 / https://shanepark.tistory.com/394
6. QR 코드는 일시적인거라서 한 번 인식하고나서 APP 껐다 켜면 초기화가 됨
데이터 안 사라지게 하려면 링크 해야 함 -> URL 송수신 -> QR코드 URL 송수신
7. 안드로이드 스튜디오에서 유니티 띄우는 법
- https://minf.tistory.com/36 - UnityPlayerActivity가 없다고 뜰 경우, 버전이 달라서 그러므로 개발자 문서 참고하며 진행하기
- https://www.pinslog.com/148 - 2023년에 올라온 글이라서 잘 될지도...
8. Spring과 React-Nginix 분리
'종합 프로젝트 (종료)' 카테고리의 다른 글
[종합 프로젝트] Branch Protection Rule 적용 (0) | 2023.03.28 |
---|