Features, discussions, tips, tricks, questions, problems and feedback

Geographical Information Services GIS 2.0

GIS 2.0 Features many configuration enhancements over its predecessor. The hierarchy now has infinite depth with every level able to be represented on the map. More map providers are supported along with the ability to load pre-rendered map files from disk. A richer user interface simplifies the configuration of alarming, custom icons, area pins and dynamic positional updates a great deal.

We have also updated the feature set to support static graphics via shapefiles and KML files. Zoom level based pin visibility makes it easier to provide different information depending on detail levels. Configurable tooltips allow the user to show live data when hovering on the pin. The treeview has been included natively in the control to allow better search and filter capabilities. The alarms are also indicated on the tree, with the option to drive the selected pin information to any other form components using spiders.

Bulk configuration of GIS 2.0 can still be accomplished in excel. Importing of legacy GIS 1.0 configurations is also possible if a valid legacy excel sheet is available.

The GIS 2.0 requires SmartUI 10/MAPS 4 or later and will be made available as part of the Addition Components Install.

Quick guide

The GIS datasource is now added directly on the Datasources node in the Enterprise Manager tree. The following options are available on the datasource:

  • Save: Saves the GIS datasource configuration to an XML file in [configuration path]\GIS.

  • Add: Presents the UI to add a new child node

  • Import/Export: To make sure a valid format is used, start by making a few nodes in the datasource from first principles. Then save the datasource and export the configuration. This will provide you with a good example of how to complete the cells. Importing completely overwrites the current configuration (no merge!).

  • Connection Details: Since GIS is now a licensed component, some demo nodes are provided. This dialogue shows how many nodes are in use/licenced. When licensed, there is basically no limit on the amount of nodes that can be added.

When a new node is added the only strictly required field is a unique name. Options are provided to set the node location statically or to select tag values that will drive the location dynamically. Position data should be provided in decimal representation. The zoom levels, colour and icons are inherited from the parent to allow for quicker default configuration. Setting the default zoom level to -1 will make the node permanently invisible on the map (hierarchy only node). The attributes are free text, key-value pairs for filtering and searching purposes.
A pin can be configured to be represented by an area. An area pin is a free form polygon, described by a collection of latitude longitude combinations. Alarming and selection is displayed like in pins, however, the status colour will fill the entire region. Region colours are applied with a lower opacity as to not obscure any pin items beneath it completely. Area pins cannot be driven dynamically.
There are tabs for configuring opening of graphic forms from the pin, alarming and status indication on the pin and pin tooltips.


The map control should be available in the toolbox under GIS, after the component is installed. The key properties to set are the datasource and map provider properties. OpenStreetMaps is an open source provider and Bing Maps requires a valid Bing maps key. LocalMaps are pre-rendered tiles that can be provided for a certain area on request and are ideal for fully offline systems. The map will only be visible in run mode or in the operator.


Pins are added to the map for all the nodes in the datasource. Map pins are drawn on the map surface at the required latitude and longitude. Each pin can indicate selection, status and alarm. The selected state is indicated by a bold border. If alarmed, the pin border will turn red. The lower triangle of the pin will be in the configured status colour (defaults to pin colour). The main pin real estate can contain a custom icon.


The treeview displays the nodes in a hierarchical context. It has a filter bar that allows the user to show only pins matching the terms provided. Users can filter by name, attributes, alarm state and descriptors.
Pins that are invisible by zoom level will all appear in (and be filtered by) the treeview, but are coloured light grey. Alarm states are also represented in the tree. A red square indicates that an item is in alarm. A red rectangle indicates that the item has a child that is in alarm. Both states can be visible simultaneously.

The map control supports loading of custom shapes as static items. Shape data can be loaded from shapefiles (.shp + .dbf) and Keyhole Markup Language files (.kml). Each shape file is loaded onto its own user map layer. This allows the layers to be ordered and turned on/off on demand. Shapes in these files have configurable background and selected colours. The user can also set at which zoom levels the layer should be visible


To prepare Your own LocalMapProvider (in other words - prerendered png tiles from web maps or OSM/GPS data) You need to create them using the scheme compatible with OpenLayers or OpenStreetMap and put such generated structure into Your ActiveConfigurationPath + "GIS\Tiles” folder on the Server (Operators will download these resources, however, if You would like to narrow down the bandwidth even more, You can also put these files on Operator machines).

There are multiple tools which can achieve that, one of them is Maperitive which has really quick 2-minutes introduction upon first launch (no installation required) to learn everything You need to know. Here is a sample step-by-step procedure I used:

  1. Download Maperitive, launch, with right click on map set the geometry bounds for map area.
  2. Put into commandline of maperitive ‘generate-tiles minzoom=9 maxzoom=14’ and hit enter. It created inside Maperitive folder Tiles with generated png files for selected map area with zoom levels from 9 to 14. (be extra careful when deciding on how many levels You are going to render, this can take terabytes of data and time).
  3. Now, this Tiles folder needs to be put under: ActiveConfigurationPath + "GIS\Tiles” so in my case it was C:\ProgramData\Adroit Technologies\MAPS\Configurations\Default\GIS and there the generated Tiles folder
  4. Works! All was left to do is to setup the GisMapControl default coordinates and zoom level in properties of the control to point at the area which is covered in generated tiles area.


I’m not sure if this is the right place for this question, but I hope it is. :slightly_smiling_face:
Q.:Is it possible to attach a text label to a pin and make its visibility dependent on the zoom level?

Kind regards,


It is not possible to associate a zoom level to a windows control (such as a label) on the GIS, however it is possible to associate a zoom level to the pin and also configure a tooltip and a specific popup for each pin:

  • Configure visibility based on zoom level for the pin:


  • Configure a tooltip with specific information for the pin:

On the configuration for the pin:


Which will be displayed in the Operator:


  • Configure a graphic form popup with specific information for the pin:

Use aliases to create a template graphic form:

Associate the graphic form and the aliases with a specific pin configuration:


Now when the user double clicks on the pin, the template graphic form will open: