addDistanceFix

This commit is contained in:
Timo Volkmann 2021-01-15 17:53:32 +01:00
parent 2d2b823592
commit 9199977b89
2 changed files with 25 additions and 7 deletions

View File

@ -76,14 +76,14 @@ let accChart = new Chart(ctx1, {
*/
function addDistances(data){
//collect all horizontal accuracies from serial source and tcp source.
let serialHAccs = data.map(el => {
let serialHAccs = data.filter(el => el.ser != null).map(el => {
return el.ser.HAcc
})
let tcpHAccs = data.map(el => {
let tcpHAccs = data.filter(el => el.tcp != null).map(el => {
return el.tcp.HAcc
})
//apply vincenty algorithm on coordinates from serial and tcp source.
let distances = data.map((el, i, arr) => {
let distances = data.filter(el => el.ser != null && el.tcp != null).map((el, i, arr) => {
// return distVincenty(el.ser.Position, el.tcp.Position)
const plaindist = distVincenty(el.ser.Position, el.tcp.Position)
arr[i]['distance'] = plaindist
@ -96,12 +96,17 @@ function addDistances(data){
return arr[i].distanceCleanAbs // plaindist - Math.abs(el.ser.Speed / 1000 * el.differenceMs)
})
let tcpTimes = data.map(el => {
let timelabels = data.filter(el => el.tcp != null).map(el => {
return el.tcp.Timestamp
})
if (timelabels.length === 0) {
timelabels = data.filter(el => el.ser != null).map(el => {
return el.ser.Timestamp
})
}
//add the data to the chart and update the hart
accChart.data.labels = tcpTimes
accChart.data.labels = timelabels
accChart.data.datasets[0].data = serialHAccs
accChart.data.datasets[1].data = tcpHAccs
accChart.data.datasets[2].data = distances

View File

@ -115,7 +115,7 @@ window.addEventListener("load", function(evt) {
});
function prepareForDistanceCalc(data) {
if('SOURCE_TCP' in data && data.SOURCE_TCP.length > 0 && 'SOURCE_SERIAL' in data && data.SOURCE_SERIAL.length > 0) {
if('SOURCE_TCP' in data && data.SOURCE_TCP.length > 0 && 'SOURCE_SERIAL' in data) {
let sensorPoints = [];
data.SOURCE_TCP.forEach(element => {
if (element.Position[0] !== 0 && element.Position[1] !== 0) {
@ -143,6 +143,19 @@ function prepareForDistanceCalc(data) {
})
console.log("SENSORPOINTs", newSensorPoints)
return newSensorPoints
} else if ('SOURCE_SERIAL' in data && data.SOURCE_SERIAL.length > 0) {
let sensorPoints = [];
data.SOURCE_SERIAL.forEach(element => {
if (element.Position[0] !== 0 && element.Position[1] !== 0) {
sensorPoints.push({
differenceMs: Number.MAX_VALUE,
tcp: null,
ser: element,
speed: null
})
}
})
return sensorPoints
}
return null
}
}