你并不是真的在寻找哈希(哈希通常会分散基础密钥,而且它们也允许进行分支).
相反,我认为像下面这样的简单公式可以解决问题,而且它是可逆的.
[pseudo code]
Precision = 100 // lat and long precsion, boost to 1000 if need be
LatOffset = 1000 // Anithing above 180 would do
Key = ((int)(Lat * Precision) * LatOffset) + (int)(Long * Precision)
Run Code Online (Sandbox Code Playgroud)
扭转
Long = (Key Modulo (LatOffset * Precision)) Div Precision
Lat = (Key Div (LatOffset * Precision)) Div Precision )
Run Code Online (Sandbox Code Playgroud)
编辑:哎呀,我没注意到它在C中.确实,使用jheddings的解决方案(或其变体(要求"hash"键是一个整数).