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
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.
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