software projects

eEMS

GISDATA Croatia, largest regional geoinformation systems integrator, contacted our local developers to join their team while implementing information system for Zagreb Emergency Medical Service, large IT project funded by World Bank. Project included data entry & support applications for call center integrated with medical vehicles tracking and guiding system.

Vehicle tracking was implemented using GPS devices (Global Positioning System, location detection using satellites) installed in vehicles. TETRA radio network system was used for transmitting location data to call center. Our developers were responsible for implementing component to receive this data and display interactive map with vehicles and incident locations over raster and vector background (combination of scanned maps, satellite imagery and street vectors). This component was to be highly optimized, enabling real-time display of all changes, and absolutely reliable.

We decided to build it as an ActiveX component in order to enable easy integration with main application. C++ was used as development language. To speed-up the drawing operations (zoom, pan, refresh) custom raster display engine was implemented because standard functions could not handle the required amount of raster data (mostly scanned maps in TIFF format) in real-time. So we pre-processed all images into our custom multi-resolution, tiled and compressed structure enabling very fast display of any part of the map in any resolution.

Vector drawing (streets and labels) was implemented on top of our raster engine using ESRI MapObjects components, which enables access to both 'shapefile' format (industry standard for spatial vector data) and vectors stored in ESRI SDE databases (both were used in this project).

On top of this we implemented symbology layer for displaying vehicles and incident locations. Symbols are defined in custom built TrueType font, enabling simple symbol scaling, coloring and anti-aliased display. Special care was taken so that symbology is very flexible and customizable: symbols have various states represented with features like color, flashing or labels. Really complex symbols can be created by layering multiple symbols into one composite symbol. Symbol display operations are also highly optimized so that system can handle hundreds of symbols moving around and changing states without problem.

Component includes various additional functions supporting the main application:

finding the vehicle nearest to specific incident
logging of all received data (vehicle movements)
automatic zoom & pan to specific vehicle or incident location
approximating address location on map using street name and number as parameters
zoom to specific area, address location or map scale
user interface functions: responding to user's click, draw, drag & drop etc.
coordinate conversions

Special version of this component is developed to be used for projecting map onto large screen in call center room. This version is fully automated and includes several modes of operation: automatic map scroll, following specific vehicle, 'jumping' from vehicle to vehicle etc.

This component is now operational in Zagreb Emergency Medical Service. Application is used on dozen client workstations and monitors about 50 medical vehicles. System is operational 24 hours a day. There is strong possibility that this system will be deployed in several largest Croatian cities.

Technology used: C / C++, MFC, COM / ActiveX, ESRI MapObjects, ESRI ArcGIS & ArcSDE, TCP/IP sockets, ADO, Oracle, Intel VTune, Intel Performance Libraries