Saya sedang berpikir tentang menulis perangkat lunak untuk berurusan dengan GPS Tracks dan Waypoints (kebanyakan menyimpan, menampilkan, dan menghitung metrik seperti kecepatan, tingkatan, dan beberapa statistik sederhana).
Saya bertanya-tanya apa yang harus menjadi model data yang paling kuat secara konseptual mengenai trackpoint, dan berikut adalah beberapa "kandidat":
Mempertimbangkan Tracks sebagai urutan Trackpoints:
1.1. Trek dianggap "2D", karena proyeksi peta adalah 2D. Trackpoint mungkin memiliki atau tidak memiliki ketinggian, mungkin atau tidak memiliki stempel waktu. Ketinggian dan stempel waktu dianggap "ekstra", "opsional". Untuk aplikasi terestrial, elevasi adalah fungsi langsung dari lat / lon (dapat diperoleh melalui DEM);
1.2. Trek dianggap "3D" karena ruang geografisnya memang 3D, dan lintasan penerima adalah 3D (dengan demikian, proyeksi 2D merupakan bentuk reduksi data). Stempel waktu mungkin atau tidak ada (trek bisa ditarik dengan tangan).
1.3. Trek dianggap "4D" (3 spasial + waktu). Dengan demikian, peta yang digambar tangan adalah kasus khusus di mana ketinggian dan cap waktu tidak ada
null
atau tidak ada, tetapi properti Trackpoint selalu "ada".Trek dianggap sebagai kamus aliran, di mana semua aliran memiliki panjang yang sama. Ada daftar garis lintang, daftar garis bujur, daftar ketinggian, salah satu stempel waktu, dll. Ini memudahkan untuk menghitung statistik setiap properti, dan konsep Trackpoint menjadi "virtual" dalam arti tertentu, karena merupakan penampang banyak aliran.
Jika saya mengerti benar, format GPX mengadopsi 1.1., KML mengadopsi 1.2. (tanpa dukungan untuk stempel waktu), dan Strava API mengadopsi 2. (dalam format JSON), tetapi pada akhirnya ini hanyalah format FILE untuk serialisasi dan penyimpanan, tidak harus untuk pemodelan, representasi komputasi, dan penjumlahan angka.
Apakah ada bentuk yang lebih disukai, dalam arti berorientasi objek, dan mengapa? (Saya percaya bahwa pengetikan yang kuat dan pemodelan yang masuk akal setidaknya akan menghindari operasi yang tidak masuk akal).
EDIT: beberapa pertanyaan tambahan "menarik":
- Apakah trek yang digambar tangan SEPENUHNYA sama dengan tracklog yang direkam perangkat? Haruskah mereka dari tipe data yang berbeda?
- Haruskah dianggap "benar" bahwa KML menyimpan elevasi nol sebagai nol? Nol ADALAH ketinggian, dan jika Anda tidak tahu ketinggian, Anda tidak harus menetapkan nol numerik untuk itu, bukan?
- Apakah itu penting, di trek dengan ketinggian, jika ketinggian diekstraksi dari data DEM ("offline") atau dari data GPS atau data barometrik ("di lapangan")? Haruskah ini ditandai di objek Track? Disimpan ke properti Trackpoint yang berbeda? Diabaikan? Haruskah mereka tipe data koleksi yang berbeda?
- Jika saya mengedit trek yang direkam perangkat dalam editor peta (menambah, memindahkan, dan menghapus titik), atau menggabungkan trek dari tanggal yang berbeda, bagaimana penanganan stempel waktu pada trackpoint? Haruskah mereka "dipindahkan" ke nol? Haruskah objek (koleksi trackpoint) dari jenis yang berbeda dibuat dari yang sebelumnya?
<>
dan{}
untuk membantu Anda mengatur data Anda - dan meta data - Anda salah melakukannya.