什么是经纬度偏转?
偏移经纬是人为加上误差的经纬度,相对于真实的经纬度而言。
经纬度偏转的意义?
目的是为了对数据的真实信息进行保护,经纬偏移控制在一定范围内,既能反映物体真实的位置,又不至于泄露位置的准确信息。
非标准式的简单实现方案
思路
1.经度与真实距离的换算方式
经度每隔0.00001度,距离相差约1米;
每隔0.0001度,距离相差约10米;
每隔0.001度,距离相差约100米;
...
2.纬度与真实距离的换算方式
纬度每隔0.00001度,距离相差约1.1米;
每隔0.0001度,距离相差约11米;
每隔0.001度,距离相差约111米; ...
3.实现与例子
// 以经纬线都偏差0.001度为例子,即左右偏差范围为-100m~100m,上下偏差范围为-111m~111m
const val = {
longitude: 116.265816,
latitude: 40.042198
};
function getOffset() {
// 随机正负数
const symbol = Math.random() > 0.5 ? 1 : -1;
// 计算获取-0.001~0.001范围的数值
const offset = symbol * Math.random() / 1000;
// 返回最终偏移量,一般情况下,精确到小数点后6位可以达到约1米精度
return Number(offset.toFixed(6));
}
val.longitude += getOffset();
val.latitude += getOffset();
console.log(val.longitude) //116.266131
console.log(val.latitude) //40.042051