Специальные символы широты и долготы в Erlang/Mnesia

Попытка изменить некоторые специальные символы в Erlang (оболочка на данный момент), особенно градусы, минуты и секунды, используемые в широте / долготе.

Я прочитал все о модуле unicode и поэкспериментировал с функциями x_to_y, и, похоже, не могу заставить I°J'K ″ N X ° Y'Z ″ W соответствующим образом отображаться в оболочке. Стоит отметить, что я извлекаю эти значения из HTTP-запроса, сохраняю их в базе данных Mnesia и хочу отправить их обратно в ответ.

Мне все равно, если я заставлю их выглядеть красиво в оболочке, если я смогу разобраться в них позже, в разных контекстах (например, на веб-странице).

Вопрос сводится к следующему: как я узнаю, что Эрланг получает правильные символы, и есть ли способ подтвердить, что список целых чисел позже будет преобразован в правильную форму?

Хотя мне нужно добиться вышеизложенного, будет ли общая рекомендация преобразовывать координаты в десятичные и сохранять их таким образом?

1 ответ

Решение

Эффективным способом хранения таких значений является использование кортежа {D,M,S}, если вам придется повторно использовать значение, это позволит избежать неожиданных проблем с округлением. Десятичное значение стоит, если вам нужно только сделать вычисления с информацией.

Можно проверить, что вы получили правильное значение, используя красивый формат печати "~p" напрямую печатать кортеж. Обратите внимание, что, когда это возможно, лучше использовать сопоставление с образцом для теста, чем полагаться на вывод оболочки. Оболочка действительно хороша для быстрой оценки, но она вводит некоторые различия по сравнению с выполнением в модулях (использование симпатичной печати по умолчанию, нет реального назначения переменных, различная обработка анонимных функций, особенно при обмене между узлами...)

Другие вопросы по тегам