经纬度偏转-简单实现方案

853 阅读1分钟

什么是经纬度偏转?

偏移经纬是人为加上误差的经纬度,相对于真实的经纬度而言。

经纬度偏转的意义?

目的是为了对数据的真实信息进行保护,经纬偏移控制在一定范围内,既能反映物体真实的位置,又不至于泄露位置的准确信息。

非标准式的简单实现方案

思路

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