Open biodranik opened 3 months ago
65 bytes per point is about 5 megabytes per day (65 60 60 * 24 / 1024.0 / 1024.0 = 5.35). 24h is the maximum recording interval in the current implementation. What problem are we trying to solve here?
There is a request to store/render local data for months or even years of travel. Why it should be limited only to a day? Then you can "save" a recorded track at any time later, without any hassle or time pressure.
data for months
10 megabytes?
even years of travel
I guess the rendering of millions of points will die earlier.
Not a priority for "The Track Recorder for Android (GSoC 2024)" project.
Almost 40 Mb of data were collected in a week. More data means slower data loading, which means faster battery depletion.
It is not necessary to render everything at all times.
Why was it marked as a "Raw idea"? The idea is pretty clear and simple to implement.
Some of our users would love to store all their movements/tracks in OM. Storing recent/recorded track data in the compact format will not only save space for year-long trips but also can be loaded/processed faster in some cases.
It would be great to discuss and design/estimate efforts for a more efficient storage format. Refactoring should include migration from the current format to a new one.
This is how points are stored in C++ now:
Each point takes 65 bytes. The data can be packed more tightly to be always kept in memory and to be processed more efficiently. Saving a track from these already collected points can be as simple as marking start and end points on it.
Originally posted by @biodranik in https://github.com/organicmaps/organicmaps/pull/7951#pullrequestreview-2062440326
CC @cyber-toad @vng @kirylkaveryn @rtsisyk @kavikhalique @itfarrier