gpt4 book ai didi

c++ - 纬度经度的哈希/ key 创建功能?

转载 作者:太空狗 更新时间:2023-10-29 23:42:56 25 4
gpt4 key购买 nike

我有与纬度/经度值关联的数据 block 。我想从纬度/经度值创建一个查找键/哈希值,以便它可以用作对 map 或类似内容的查找。

我对西部和南部使用负值...因此 5W、10S 在程序中表示为 -5、-10。

如果可能的话,我希望能够从键值中取回纬度/经度值。

派生值必须是某种整数值。

我正在使用 C/C++ :)

谢谢,我很乐意回答任何问题!

最佳答案

您并不是真正在寻找哈希(哈希通常分散底层键,并且它们允许冲突)。

我认为,像下面这样的简单公式就可以解决问题,而且它是可逆的。

[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)

反转

Long = (Key Modulo (LatOffset * Precision)) Div Precision
Lat = (Key Div (LatOffset * Precision)) Div Precision )

编辑:糟糕,我没有注意到这是在 C 中。确实,使用 jheddings 的解决方案(或其变体(要求“散列”键是整数))。

关于c++ - 纬度经度的哈希/ key 创建功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1694902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com