Erlang/Mnesia 中的经纬度特殊字符
Latitude and Longitude Special Characters in Erlang/Mnesia
尝试处理 Erlang 中的一些特殊字符(目前为 shell),尤其是 latitude/longitude 中使用的度、分和秒。
我已经阅读了有关 unicode 模块的所有内容并尝试了 x_to_y 函数,但似乎无法得到 I°J′K″ N X°Y′ Z″W适当出现在shell中。需要注意的一件事是我从 HTTP 请求中提取这些值,将它们存储在 Mnesia 数据库中,并希望在响应中将它们发回。
我真的不在乎我是否让它们在 shell 中看起来漂亮 ,只要我以后可以在不同的上下文中理解它们(例如网页)。
问题归结为:我怎么知道 Erlang 正在接收正确的字符,有什么方法可以确认整数列表稍后会重构为正确的形式?
虽然我确实需要实现上述目标,但一般建议是将坐标转换为小数并以这种方式存储它们吗?
存储此类值的一种有效方法是使用元组 {D,M,S},如果您必须重用该值,它将避免意外的舍入问题。如果您只需要对信息进行计算,则十进制值是值得的。
可以使用漂亮的打印格式 "~p"
直接打印元组来检查您是否获得了正确的值。请注意,在可能的情况下,最好使用模式匹配进行测试,而不是依赖 shell 输出。 shell 非常适合快速评估,但它与模块中的执行相比引入了一些差异(默认使用漂亮的打印,没有真正的变量分配,在节点之间交换时对匿名函数的不同处理...... )
尝试处理 Erlang 中的一些特殊字符(目前为 shell),尤其是 latitude/longitude 中使用的度、分和秒。
我已经阅读了有关 unicode 模块的所有内容并尝试了 x_to_y 函数,但似乎无法得到 I°J′K″ N X°Y′ Z″W适当出现在shell中。需要注意的一件事是我从 HTTP 请求中提取这些值,将它们存储在 Mnesia 数据库中,并希望在响应中将它们发回。
我真的不在乎我是否让它们在 shell 中看起来漂亮 ,只要我以后可以在不同的上下文中理解它们(例如网页)。
问题归结为:我怎么知道 Erlang 正在接收正确的字符,有什么方法可以确认整数列表稍后会重构为正确的形式?
虽然我确实需要实现上述目标,但一般建议是将坐标转换为小数并以这种方式存储它们吗?
存储此类值的一种有效方法是使用元组 {D,M,S},如果您必须重用该值,它将避免意外的舍入问题。如果您只需要对信息进行计算,则十进制值是值得的。
可以使用漂亮的打印格式 "~p"
直接打印元组来检查您是否获得了正确的值。请注意,在可能的情况下,最好使用模式匹配进行测试,而不是依赖 shell 输出。 shell 非常适合快速评估,但它与模块中的执行相比引入了一些差异(默认使用漂亮的打印,没有真正的变量分配,在节点之间交换时对匿名函数的不同处理...... )