我正在尝试获取用户位置,即。 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'
的坐标对答案 0 :(得分:0)
您只需计算用户输入和CSV值之间的差异即可。然后查看差异是否低于指定的阈值。类似的东西:
var err = Math.abs( a - b );
if( err < threshold ) {
// logic
}
答案 1 :(得分:0)
由于我们只是想找到最接近的近似值,所以我将简单地使用两点画布公式,这将是最快的方法。
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;