Я замислююсь над написанням програмного забезпечення для роботи з треками та шляхами GPS (в основному зберігання, відображення та обчислення показників, таких як швидкість, оцінка та деякі прості статистичні дані).
Цікаво, що має бути найбільш концептуально надійною моделлю даних щодо точок маршруту, і ось декілька "кандидатів":
Розглядаючи композиції як послідовності точок маршруту:
1.1. Треки вважаються "2D", оскільки проекції карт - 2D. Траєкторії можуть мати або не мати висоту, можуть бути або не мати часових позначок. Підвищення та позначка часу - це "додаткові", "необов'язкові". Для наземних застосувань висота є прямою функцією lat / lon (можна отримати через DEM);
1.2. Доріжки вважаються "3D", оскільки географічний простір справді є 3D, а траєкторія приймача - 3D (2D-проекція, таким чином, є формою скорочення даних). Мітка часу може бути або не присутня (доріжку можна було намалювати вручну).
1.3. Доріжки вважаються "4D" (3 просторові + часові). Таким чином, намальована вручну карта - це особливий випадок, коли висота та часова мітка відсутні
null
чи іншим чином відсутні, але властивості Trackpoint завжди «є».Треки вважаються словниками потоків, де всі потоки мають однакову довжину. Існує перелік широт, перелік довжин, перелік висот, одна з часових позначок тощо. Це полегшує обчислення статистики кожного об'єкту, а поняття Trackpoint стає «віртуальним» у певному сенсі, оскільки це поперечний переріз багатьох потоків.
Якщо я правильно зрозумів, формат GPX приймає 1.1., KML приймає 1.2. (без підтримки часової позначки), і Strava API приймає 2. (у форматі JSON), але врешті-решт це лише формати FILE для серіалізації та зберігання, не обов'язково для моделювання, обчислювального подання та скорочення чисел.
Чи є якась форма, яка є кращою, в об’єктно-орієнтованому розумінні, і чому? (Я вважаю, що сильне введення тексту та розумне моделювання принаймні дозволить уникнути операцій, які не мають сенсу).
EDIT: кілька "інтригуючих" додаткових запитань:
- ЧИ КОНЦЕПТУЛЬНО це те саме, що записано на пристрої трек? Чи мають вони бути різними типами даних?
- Чи слід вважати "правильним", що KML зберігає нульові висоти як нуль? Нуль IS висота, і якщо ви не знаєте висоти, ви не повинні присвоювати їй числовий нуль, чи не так?
- Якщо це має значення в доріжці з висотою, якщо висота отримана з даних DEM ("офлайн") або з даних GPS або барометричних даних ("у полі")? Чи потрібно це позначити в об'єкті сліду? Збережено для різних властивостей Trackpoint? Проігноровано? Чи повинні вони бути різними типами даних колекції?
- Якщо я редагую записану на пристрої доріжку в редакторі карт (додавання, переміщення та видалення точок) або поєдную треки з різних дат, як слід обробляти часові позначки в точках треків? Чи слід їх "скинути" на нуль? Чи повинен створюватися об'єкт (колекція треків) іншого типу з попередніх?
<>
і{}
щоб ви могли організувати свої дані - і метадані - ви робите це неправильно.