Ваш предложенный метод не является оптимальным. Вы используете 10 бит (1024 возможных значения) для хранения значения в диапазоне (0..599). Это пустая трата пространства.
Если вы будете использовать 3 байта для широты, вы должны отобразить диапазон [0, 2 ^ 24-1] на диапазон [-90, 90]. Следовательно, каждое из 2 ^ 24 значений представляет 180/2 ^ 24 градуса, что составляет 0,086 секунды.
Если вам нужна точность только 0,1 секунды, вам потребуется 23 бита для широты и 24 бита для долготы (вы получите точность 0,077 секунды). Это всего 47 бит вместо ваших 49 бит с большей точностью.
Можем ли мы сделать еще лучше?
Точное число бит, необходимое для точности 0,1 секунды, равно log2 (180 * 60 * 60 * 10 * 360 * 60 * 60 * 10) <46,256. Это означает, что вы можете использовать 46256 бит (5782 байта) для хранения 1000 (широта, долгота) пар, но математика требует использования очень больших целых чисел. </p>
Можем ли мы сделать еще лучше?
Это зависит. Если в вашем наборе данных есть концентрации, вы можете хранить только некоторые точки и относительные расстояния от этих точек, используя меньше битов. Следует использовать алгоритмы кластеризации.