This article is about JMap Tracking and its uses. Tracking has existed for several years now; it’s a stable technology that has proven its worth. That being said, JMap Tracking continues to evolve, and we have an interesting roadmap for the coming year. Some of you may not be familiar with the application. I’d like to explain how it works, so you can discover or rediscover it.

Tracking can be used for a wide variety of purposes: tracking road maintenance vehicles; tracking public works teams; tracking emergency vehicles; vessel tracking (AIS), water level monitoring, etc.

Thus, JMap Tracking is a JMap extension that allows you to integrate and use dynamic data with the JMap platform. This dynamic data is often AVL (Automatic Vehicle Tracking) data used to track vehicle fleets, but it can also include other types of objects, such as equipment, sensors or even people. Dynamic data is in fact data whose geolocation, form or attributes vary over time.

The dynamic data supported by Tracking generally comes from objects with geolocation devices (GPS, RFID, etc.) and with data transmission devices (cellular modems, LoRa radio, etc.). Tracking can receive the data directly, or it can be sent via an external service used to receive and store data.


Tracking on the server side

On the server side, the main features of JMap Tracking are the following:

  • Data reception:  The Tracking Listener module is used to receive the data. The module must be reachable by the communication devices of the objects that are tracked. It supports several communication protocols and types of messages. It is a very light and robust module that allows the data to be stored temporarily before it is sent to JMap Server for permanent storage. Optionally, Tracking Listener can handle database storage on its own. In addition, Tracking Listener can filter the data received to reject any data that is invalid.
  • Data processing and monitoring: Once the data has been sent to JMap Server, Tracking will perform certain processing operations on the data received. For instance, Tracking can determine the name of the street on which a vehicle is moving. Tracking can also snap the vehicle’s location to street center lines using a powerful algorithm.
    The data received by Tracking can be monitored to ensure compliance with geofencing rules. These rules are based on space, time, and attribute restrictions. See below for more information on geofencing.
  • Storing history data: Tracking stores data in an SQL database. The most recent data is stored in a separate table, and the entire data is stored in the history data table. It is possible to configure the period of time during which the data is stored

The following image illustrates Tracking’s operation on the server side.



Tracking on the client side

On the client side, JMap Tracking is available in JMap Pro. Most of Tracking’s operations can be performed via a specialized graphical interface.

There currently is no Tracking extension for JMap Web. However, it is possible to view Tracking’s dynamic data in JMap Web, without accessing Tracking’s other functions.


List of mobile units

Fleets of mobile units are displayed in a list that allows you to view all units with recent activity. From this list, the user can do the following:

  • Locate a specific unit.
  • Display or replay the history of trips.




The history function is used to display the previous trips made by one or more mobile units. The user must start by selecting the desired period (start and end date/time). Shortcuts can be used to select the last hours or the current day. Afterward, the user selects the units in the list for which the history is to be displayed, then presses the history button. The previous positions of the selected units are displayed on the map, and the user can view them.

Tracking offers a new feature that allows you to replay the activity of units, similar to animation. To replay the activity, the user selects one or more mobile units in the list. Afterward, the user must open the panel below the list, enter the start date and time, and indicate the speed of the animation. It can be helpful to accelerate the animation in order to better analyze the trips.




JMap Tracking can analyze historical data to produce thematic displays. For instance, to track the winter maintenance of roads, Tracking can create a thematic map of the road network, with different colors based on the number of times snow removal was performed on each street section over a given period of time.

In order to run an analysis, the user selects the desired period, the list of mobile units to include, and the type of analysis to perform.

These customizable analyses are defined in advance by the JMap administrator.




Using the history data, JMap Tracking can generate activity reports. These reports provide information on mobile units, including their hours of activity, distances covered, average speeds, etc. It is also possible to develop customized reports to meet the specific needs of each organization.




Geofencing consists of defining virtual zones and monitoring the movement of mobile units according to these zones. For instance, an alarm could be generated if a vehicle leaves a parking lot. With JMap Tracking, we take the concept further by including rules based on geospatial, time, and attribute restrictions. For example, we could create the following geofence: Generate an alarm if a vehicle moves through zone A between 8 a.m. and 5 p.m. at a speed exceeding 60 km/h.

Geofencing alarms can be sent to people via email or text message. They can also be viewed directly in JMap Pro by designated users.




We will continue to work on Tracking in 2019. Our main goal is to develop a version of Tracking for JMap Web. This version would offer a subset of Tracking’s features. The Web version of Tracking will use websockets to display dynamic data in real time.


Jean-Robert Desbiens-Haddad

Back to Technical Blog