是否可以在我的数据库中使用由本地化(纬度和经度)制作的id(主键)?我的公式是这样的:
public long getKeyValue() {
return Long.valueOf((intLatitude + 90 * 1000) + "" + (intLongitude + 180 * 1000));
}
intLatitude
和intLongitude
都会乘以1000并四舍五入。我分别添加90和180来重新映射原点以处理负坐标。
答案 0 :(得分:2)
使用给定的方法,由于含糊不清,您将遇到问题。例如,123可以是纬度1经度23或纬度12经度3.您应该用零填充或使用分隔符。
为什么要费心将两者映射到单个值?大多数数据库系统都允许复合主键,因此您可以直接使用该对(lat,lon)作为键。