javascript - How to use loop for retrieve distance between multiple coordinates from array?
问题描述
function distance(lat1, lon1, lat2, lon2, unit) {
if ((lat1 == lat2) && (lon1 == lon2)) {
return 0;
}
else {
var radlat1 = Math.PI * lat1/180;
var radlat2 = Math.PI * lat2/180;
var theta = lon1-lon2;
var radtheta = Math.PI * theta/180;
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
if (dist > 1) {
dist = 1;
}
dist = Math.acos(dist);
dist = dist * 180/Math.PI;
dist = dist * 60 * 1.1515;
if (unit=="K") { dist = dist * 1.609344 }
if (unit=="N") { dist = dist * 0.8684 }
return dist;
}
}
console.log(distance(lat1, lon1, lat2, lon2, "K"));
My array: [0 … 99] 0: {provider: "fused", locationProvider: 1, time: 1582829443960, latitude: 45.9605221, longitude: 13.6437692, …} 1: {provider: "fused", locationProvider: 1, time: 1582829453971, latitude: 45.9605234, longitude: 13.6437679, …} 2: {provider: "fused", locationProvider: 1, time: 1582829472537, latitude: 45.9605234, longitude: 13.6437679, …} 3: {provider: "fused", locationProvider: 1, time: 1582829502534, latitude: 45.960517, longitude: 13.6437747, …} 4: {provider: "fused", locationProvider: 1, time: 1582829503566, latitude: 45.960517, longitude: 13.6437747, …} 5: {provider: "fused", locationProvider: 1, time: 1582829893219, latitude: 45.9605249, longitude:
I need to get first distance between first two different coordinates, then from second and calculate how much calculate has each coordinate.
var distanceChange = currentUpdate.deltaDistMetres;
distanceTotal += distanceChange;
$("#test").html("Total distance " + distanceChange + " m");
解决方案
最简单的方法是用循环循环数组for
:
var result = []
for (var i=0;i<array.length-1;i++){
result.push(distance(array[i].latitude, array[i].longitude,distance(array[i+1].latitude,
array[i+1].longitude,"K"));
}
console.log(result);
推荐阅读
- vue.js - Vue:如何应用多个全局混合
- selenium - 如何重现 Selenium 错误 - 对远程 WebDriver 的 HTTP 请求在 60 秒后超时
- amcharts - 具有丰富 HTML 内容的工具提示无助于创建所需的 UI?
- python-3.x - 有没有一种方法可以将批处理文件脚本上传到 python 中(并且能够使用它们)
- css - React-Native 中边框半径图像的自定义形状
- mysql - 从派生表优化 SQL 查询
- javascript - 如何通过单击 chrome 中的选项卡在离开站点之前显示警告消息?
- node.js - 将自定义属性保存在用户数据库而不是用户池中
- mysql - 令人惊讶的 sql 查询时间统计
- c++ - C++ 创建一个存储不同类型名的向量