Skip to content

Commit 7d1782c

Browse files
committed
Tweak CoT handling slightly
1 parent 99f837a commit 7d1782c

File tree

4 files changed

+37
-17
lines changed

4 files changed

+37
-17
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
### Change Log for Node-RED Worldmap
22

3+
- v5.0.4 - Tweak CoT handling slightly.
34
- v5.0.3 - Add great context menu example flow. PR#290. Bump express lib. PR#291.
45
- v5.0.2 - Fix sidcEdgeIcon docs PR#289.
56
- v5.0.1 - Fix isArray error PR #288.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Feel free to [![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%
1313

1414
### Updates
1515

16+
- v5.0.4 - Tweak CoT handling slightly.
1617
- v5.0.3 - Add great context menu example flow. PR#290. Bump express lib. PR#291.
1718
- v5.0.2 - Fix sidcEdgeIcon docs PR#289.
1819
- v5.0.1 - Fix isArray error PR #288.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "node-red-contrib-web-worldmap",
3-
"version": "5.0.3",
3+
"version": "5.0.4",
44
"description": "A Node-RED node to provide a web page of a world map for plotting things on.",
55
"dependencies": {
66
"@turf/bezier-spline": "~7.1.0",

worldmap/worldmap.js

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3319,19 +3319,28 @@ function doTAKjson(p) {
33193319
d.lon = Number(p.point.lon);
33203320
if (p.type.indexOf('a') === 0) {
33213321
d.hdg = p.detail?.track?.course;
3322-
d.speed = p.detail?.track?.speed;
3323-
d.team = p.detail?.__group?.name;
3324-
d.team = d.team + ' <i style="color:' + d.team + '" class="fa fa-square"></i>';
3322+
if (p.detail?.track?.speed) {
3323+
d.speed = Number(p.detail?.track?.speed);
3324+
if (d.speed == 9999999 || d.speed == 0) { delete d.speed; }
3325+
else {
3326+
d.speed = d.speed + " m/s";
3327+
delete d.hdg;
3328+
d.course = p.detail?.track?.course;
3329+
d.options = { direction: d.course };
3330+
}
3331+
}
3332+
if (p.detail?.__group?.name) {
3333+
d.team = p.detail?.__group?.name;
3334+
d.team = d.team + ' <i style="color:' + d.team + '" class="fa fa-square"></i>';
3335+
}
33253336
d.role = p.detail?.__group?.role;
33263337
}
3327-
if (d.team == "undefined") { delete d.team; }
33283338
d.type = p.type;
33293339
d.remarks = p.detail?.remarks
33303340
if (p.detail?.remarks && p.detail.remarks.hasOwnProperty["#text"]) {
33313341
d.remarks = p.detail.remarks["#text"];
33323342
}
33333343
d.uid = p.uid;
3334-
33353344
try {
33363345
var st = (new Date(p.time)).getTime() / 1000;
33373346
var et = (new Date(p.stale)).getTime() / 1000;
@@ -3340,11 +3349,11 @@ function doTAKjson(p) {
33403349
d.ttl = parseInt(et-st);
33413350
}
33423351
catch(e) { console.log(e); }
3343-
d.alt = Number(p.point.hae) || 9999999;
3344-
if (d.alt && d.alt == 9999999) { delete d.alt; }
3345-
if (d.speed && d.speed == 9999999) { delete d.speed; }
3346-
if (d.hdg && d.hdg == 9999999) { delete d.hdg; }
33473352
handleCoTtypes(d,p);
3353+
d.alt = Number(p.point.hae) || 9999999;
3354+
if (d?.alt && parseInt(d.alt) == 9999999) { delete d.alt; }
3355+
else { d.alt = d.alt + "m"; }
3356+
if (d?.hdg && parseInt(d.hdg) == 9999999) { delete d.hdg; }
33483357
setMarker(d);
33493358
}
33503359
else {
@@ -3359,26 +3368,35 @@ function doTAKMCjson(p) {
33593368
var d = {};
33603369
d.lat = p.lat;
33613370
d.lon = p.lon;
3362-
d.team = p.detail?.group?.name;
3363-
d.team = d.team + ' <i style="color:' + d.team + '" class="fa fa-square"></i>';
3371+
if (p.detail?.__group?.name) {
3372+
d.team = p.detail?.__group?.name;
3373+
d.team = d.team + ' <i style="color:' + d.team + '" class="fa fa-square"></i>';
3374+
}
33643375
d.role = p.detail?.group?.role;
33653376
d.type = p.type;
33663377
d.uid = p.uid;
33673378
d.name = p.detail?.contact?.callsign || p.uid;
33683379
d.hdg = p.detail?.track?.course;
3369-
d.speed = p.detail?.track?.speed;
3370-
if (d.team == "undefined") { delete d.team; }
3371-
3380+
if (p.detail?.track?.speed) {
3381+
d.speed = Number(p.detail?.track?.speed);
3382+
if (d.speed == 9999999 || d.speed == 0) { delete d.speed; }
3383+
else {
3384+
d.speed = d.speed + " m/s";
3385+
delete d.hdg;
3386+
d.course = p.detail?.track?.course;
3387+
d.options = { direction: d.course };
3388+
}
3389+
}
33723390
try {
33733391
d.timestamp = (new Date(+p.sendTime)).toISOString();
33743392
d.staletime = (new Date(+p.staleTime)).toISOString();
33753393
d.ttl = parseInt((+p.staleTime / 1000) - (+p.sendTime / 1000));
33763394
} catch(e) { console.log(e); }
3395+
handleCoTtypes(d,p);
33773396
d.alt = p.hae || 9999999;
33783397
if (d.alt && d.alt == 9999999) { delete d.alt; }
3379-
if (d.speed && d.speed == 9999999) { delete d.speed; }
3398+
else { d.alt = d.alt + "m"; }
33803399
if (d.hdg && d.hdg == 9999999) { delete d.hdg; }
3381-
handleCoTtypes(d,p);
33823400
setMarker(d);
33833401
}
33843402
else {

0 commit comments

Comments
 (0)