0

我有一个存储一些 POI 的表,所以它有一些 id、名称、纬度和经度。问题是,我不想在数据库中拥有相同坐标的 POI 两次。我想到的可能性是:

  • 将主键设为纬度和经度的组合......但它们是浮动的,所以这不是一个好主意
  • 创建 INT(16) 列(8 个纬度数字和 8 个经度数字合并在一起),但这就像复制数据一样,会占用大量空间
  • 从纬度和经度做一些哈希,并将其设置为主键,但我担心它也会是一个大数字

怎么可能做到,所以它不会在db中占用太多空间?

4

1 回答 1

0

经度和纬度都可以通过乘以 1e7(一千万)转换为 4 字节整数。然后这是一个整数,提供您需要的所有精度(3cm)。

现在将这两个 4 字节整数组合成一个 8 字节长。

我不确定数据库是否支持 long,可能是的。

于 2013-10-04T16:37:15.040 回答