舍入纬度和经度以在javascript

时间:2018-03-29 20:48:39

标签: javascript node.js csv

我正在尝试获取用户位置,即。 lat long值并将其与CSV文件中的一组坐标进行比较。

我的csv文件看起来像这样

 Lat      Long     NAME
36.413  -97.698     p
36.146  -97.289     q
36.348  -97.157     r
36.106  -97.082     s

如果用户位置为36.412954 , -97.598884,是否可以通过比较CSV文件中的lat long值来获取NAME,即使它们与用户位置不完全相同?

它应该返回名称' p'

的坐标对

2 个答案:

答案 0 :(得分:0)

您只需计算用户输入和CSV值之间的差异即可。然后查看差异是否低于指定的阈值。类似的东西:

    var err = Math.abs( a - b );

    if( err < threshold ) {
        // logic
    }

答案 1 :(得分:0)

由于我们只是想找到最接近的近似值,所以我将简单地使用两点画布公式,这将是最快的方法。

&#13;
&#13;
let positions = [
  {latitude: 36.413, longitude: -97.698, name: "p"},
  {latitude: 36.146, longitude: -97.289, name: "q"},
  {latitude: 36.348, longitude: -97.157, name: "r"},
  {latitude: 36.106, longitude: -97.082, name: "s"},
];

let x=36.412954;
let y= -97.59888;
let tolerance=0.1;

let positions_close=positions.filter(p=>Math.hypot(p.latitude-x, p.longitude-y)<tolerance);

console.log(positions_close);
&#13;
&#13;
&#13;