0

是否可以在我的数据库中使用由本地化(纬度和经度)制成的 id(主键)?我的公式是这样的:

public long getKeyValue() {
    return Long.valueOf((intLatitude + 90 * 1000) + "" + (intLongitude + 180 * 1000));
}

intLatitude两者intLongitude都乘以 1000 并四舍五入。我分别添加 90 和 180 来重新映射原点以处理负坐标。

4

1 回答 1

2

使用给定的方法,由于模棱两可,您将遇到问题。例如 123 可以是纬度 1 经度 23 或纬度 12 经度 3。您应该用零填充或使用分隔符。

您为什么要费心将两者映射到单个值?大多数数据库系统允许复合主键,因此您可以直接使用对 (lat, lon) 作为键。

于 2013-08-26T09:10:00.210 回答