This project to for a specific monitoring project that will monitor the location of a single vehicle and plot it on a MAP, the initial Use case is a 1 - 1 mapping meaning that each device will be plotted on a different MAP or different instance. However, allowance should be made to have a global view of all devices overlaid on a map view. So you could have 100 or 1000 GPS modems reporting in to Public IP & Port and you need to decode the NMEA code $GPRMC, $GPGLL or similar and plot the location in realtime, with reactive teatime updates and tracking on the map for the unit. The Map Icon should be capable of holding a Vehicle Registration & Route number. In the future the Vehicle Reg and Route number could change daily or more frequent.
Map used should be royalty free and rich in capability
Ideally I would like to be able to embed (iFrame) a url link for each modem that would track individual units. What would be very useful would be (example only) https://urltomap.com/track=SITEID (where site ID can be a number ) =111 so site 111 for example. Then each modem has a unique SITE iD, it mean if we embed it, it will always be the same URL but with a different SITEID at the end.
The system should hold the track of the vehicle and be able to plot them on the map according to a time period. Also live realtime status should be shown on the map too. The ability to see routes over time period is important.
The system will also be reporting real time information on the status of I/O's however this will be handled separately.
Fig 1 attached is an example of a screenshot of a port listener which is receiving the information from the modem, in this case the IMEI is set to R999EAM, however it will be a 17-19 numeric digit code under normal operations. Also in this image there are other $GP codes been received which can be switched on and off based on which one is deemed to be the best for the application. Formats the modem outputs are as follows:
$GPFID, IMEI identification of the modem
$GPRMC, data coordinates payload
$GPGGA, another NMEA format
$GPGLL, another NMEA Format
More on NMEA here: http://aprs.gids.nl/nmea/
Samples of decoded NMEA
Example of a GPRMC code
Other relevant material
What is GPX format for GPS
GPX, or GPS Exchange Format, is an XML schema designed as a common GPS data format for software applications. It can be used to describe waypoints, tracks, and routes. The format is open and can be used without the need to pay license fees. Location data (and optionally elevation, time, and other information) is stored in tags and can be interchanged between GPS devices and software. Common software applications for the data include viewing tracks projected onto various map sources, annotating maps, and geotagging photographs based on the time they were taken.
How to import CSV, TSV, KML, KMZ, GPX, or XLSX file, into Google Maps
Other useful reference
Your job it to come up with the entire solution for the project
This is a list of the NMEA codes that the Unit can send, last one is the IMEI ID of the unit. we can switch on 1,2.3 or all of them depending on requirements