使用由经度和纬度制作的id

时间:2013-08-26 09:00:56

标签: mysql primary-key

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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