GPS 트랙 및 웨이 포인트 (대부분 속도, 등급 및 일부 간단한 통계와 같은 메트릭을 저장, 표시 및 계산)를 처리하는 소프트웨어를 작성하려고합니다.
트랙 포인트와 관련하여 가장 개념적으로 강력한 데이터 모델이 무엇인지 궁금합니다. 다음은 "후보자"입니다.
트랙을 일련의 트랙 포인트로 간주 :
1.1. 지도 투영은 2D이므로 트랙은 "2D"로 간주됩니다. 트랙 포인트에는 고도가 있거나 없을 수 있고 타임 스탬프가 있거나 없을 수 있습니다. 고도 및 타임 스탬프는 "extras", "선택적"으로 간주됩니다. 지상 애플리케이션의 경우 고도는 위도 / 경도의 직접 함수입니다 (DEM을 통해 얻을 수 있음).
1.2. 지리적 공간이 실제로 3D이고 수신기의 궤도가 3D이기 때문에 트랙은 "3D"로 간주됩니다 (2D 투영은 데이터 축소의 한 형태입니다). 타임 스탬프가 있거나 없을 수 있습니다 (트랙은 손으로 그릴 수 있음).
1.3. 트랙은 "4D"(3 공간 + 시간)로 간주됩니다. 따라서 손으로 그린 맵은 고도 및 타임 스탬프가
null
있거나없는 특별한 경우 이지만 트랙 포인트 속성은 항상 "있음"입니다.트랙은 스트림의 사전으로 간주되며 모든 스트림의 길이는 같습니다. 위도 목록, 경도 목록, 고도 목록, 타임 스탬프 등이 있습니다. 이렇게하면 각 속성의 통계를 쉽게 계산할 수 있으며 Trackpoint의 개념은 의미 상 "가상"이됩니다. 많은 시내의 단면.
내가 올바르게 이해하면 GPX 형식은 1.1을 채택하고 KML은 1.2를 채택합니다. (타임 스탬프를 지원하지 않음) Strava API는 2 (JSON 형식)를 채택하지만 결국 모델화, 계산 표시 및 숫자 처리가 아니라 직렬화 및 저장을위한 FILE 형식 일뿐입니다.
객체 지향적 의미에서 선호되는 형태가 있습니까? 그 이유는 무엇입니까? (강력한 타이핑과 현명한 모델링은 적어도 의미가없는 작업을 피할 수 있다고 생각합니다)
편집 : 몇 가지 "흥미로운"추가 질문 :
- 손으로 그린 트랙이 장치에 녹음 된 트랙 로그와 동일합니까? 서로 다른 데이터 유형이어야합니까?
- KML이 널 고도를 0으로 저장하는 것이 "정확한"것으로 간주되어야합니까? 0은 표고입니다. 표고를 모르는 경우 숫자 0을 지정하지 않아야합니까?
- 고도가 DEM 데이터 ( "오프라인") 또는 GPS 데이터 또는 기압 데이터 ( "필드")에서 추출 된 경우 고도가있는 트랙에서 중요합니까? 이것을 Track 객체에 표시해야합니까? 다른 트랙 포인트 속성에 저장 되었습니까? 무시 했습니까? 서로 다른 콜렉션 데이터 유형이어야합니까?
- 맵 편집기에서 장치 녹음 트랙을 편집하거나 (포인트 추가, 이동 및 제거) 다른 날짜의 트랙을 결합하면 트랙 포인트의 타임 스탬프를 어떻게 처리해야합니까? 그것들이 null로 "재설정"되어야합니까? 이전 유형과 다른 유형의 객체 (트랙 포인트 모음)를 만들어야합니까?
<>
와{}
도움말을 당신이 당신의 데이터 정리 - 메타 데이터 - 당신은 잘못하고 있어요.