@Fitzy-1 this has come up in various shape or form several times, for AIS, ADS-B, and other location-and-whatnot reporting data sources
then some half-assed effort is expended on datasource X, plugin published, victory declared and the whole thing rots away
this scheme just does not fly - however, there seems to be a legit demand for displaying nonstandard stuff on maps
my recommendation would be - split the problem into two:
a) a generic "here's a plugin which can display various stuff on a windy Leaflet map" part
b) a per-use-case "transform my data into the format the former can display it"
there is a superb example in the node-red ecosystem for a): https://flows.nodered.org/node/node-red-contrib-web-worldmap and I suggest to give it a try
you display "stuff" on the map by sending a JSON message with coordinates, and attributes what and how to display it
you "move" stuff on the map by sending that message with new coordinates
that is pretty much it - see the usage section: colors, icons, popups, speed/heading vectors, links, images, send GeoJSON, KML etc and what not
now node-red has an internal mechanism for message passing between nodes and that needs to be replaced by some generic vehicle - for that I'd use a Websockets listener/connector, passive/active HTTP or just passive/active TCP.
Step1: transplant the inbound message handling mechanism into a windy plugin.
Step2: recreate the outbound "Events from the map" so an external data source can react to click, pan, move, delete, file drop.
Then, to integrated your AIS or some other data source you only have to transform the data into the format expected by the map interpreter. And it could be pretty much any language one is familiar with - node, python, whatever.
I've used node-red-contrib-web-worldmap - it's well supported, stable and very popular. The core code is some 3000 lines and well written.
@rittels