Необходимо найти алгоритм преобразования координат в число (signed Long)

Есть некий алгоритм преобразования координат в Long и обратно. Как я понял он основан на перемешивании битов. Наиболее близкий результат дает преобразование Мортона. Но тем не менее итоговый результат отличается. Вот пример:

Координаты  -  Результат работы алгоритма    

       0.0,   0.0   4611686018427371520   Мортон выдает такое число  -4611686018427387904
    -180.0,  90.0  -8454757700450246656
       0.0,  90.0  -6917529027641122816
     180.0,  90.0  -2305843009213751296
       0.0, 180.0  -4611686018427437056
     180.0, -90.0   6917529027641057280
       0.0, -90.0   2305843009213685760
    -180.0, -90.0    768614336404561920
       0.0,-180.0   1537228672809123840

Некоторые координаты для проверки
37.868082,55.249924 -3932076971063411469

Если сделать обратное преобразование алгоритмом Мортона, то число -4611686018427387904 дает координаты: 0.000011, 0.000011 но лни отличаются от 0.0, 0.0

Помогите определить алгоритм преобразования.

Очень надеюсь на помощь сообщества


Ответы (0 шт):