Map

Functional and usage reference for the Map object, covering its runtime role, the placement of symbols by geographic coordinate, the Edit Map Children dialog, and the supported settings available in the design environment.

Updated 8 min read
On this page (10 sections)
  1. Functional explanation
  2. Setup workflow
  3. Object name
  4. Settings
  5. Edit Map Children
  6. Symbol Size and Zoom
  7. Position / Size
  8. Access Control
  9. Visibility
  10. Notes

Functional explanation

The Map places an interactive map on the page. Symbols are positioned on the map by geographic coordinate instead of by pixel position, so the same page layout can present equipment that is spread across a site, a region, or multiple plants.

Each symbol placed on a Map is called a map child. A map child keeps its own runtime behavior: it animates from its variables and reacts to a click with its own configured action, for example opening its popup. The position of a map child is owned by its Position variable or its Longitude and Latitude values, so map children are positioned from the Edit Map Children dialog rather than by dragging them on the canvas.

Operators can pan and zoom the map at runtime, and the current center and zoom level are stored with the page. Symbols that fall outside the visible map area are hidden automatically and reappear when the map is panned or zoomed back to them. Their coordinate variables stay subscribed while they are hidden, so a symbol that moves back into view is shown at its current position.

Use the Map when the geographic location of equipment is part of the operator overview, for example pumping stations, remote tanks, substations, or vehicles.

The Map loads its background map tiles from an online tile service, so the client needs an internet connection for the background map to appear. Symbols, coordinates, and variable animation are handled by the server and the page itself.

Setup workflow

A Map is configured in two steps: the map itself is set up from the Map Decorator group in the properties panel, and the symbols shown on it are managed from the Edit Map Children dialog.

  • Place the Map on a page and give it a clear Object Name.
  • Select the Map Style that suits the application, and set the map view by panning and zooming to the required area.
  • Enable Lock View (runtime) when operators must always see the same area.
  • Open Edit Map Children and use Add to select a symbol from the symbol list. The selected symbol is placed on the map as a map child.
  • Give the map child a position in one of two ways: fill in the Position variable with the name of one variable that holds the complete position as lat,lon; or fill in the Longitude and Latitude, either as fixed decimal degrees or as a variable name each.
  • Use the settings button on the row to open the properties of that symbol instance and configure its replacers, actions, and animation.

Object name

Set the object name shown in the map decorator context.

SettingDescriptionExampleUnits
Object NameName used to identify the Map object.SiteOverviewMapText

Settings

Configure the background map style, the runtime view behavior, and the symbols placed on the map.

SettingDescriptionExampleUnits
Map StyleBackground map style. Available values are Street, Terrain, Light, Dark, Humanitarian, and Satellite. Each style has its own maximum zoom level, and the map view is clamped to that level when a style with a lower maximum is selected.StreetEnum
Lock View (runtime)Disables panning and zooming for runtime users, so the map keeps the view that was set during design.falseBoolean
Edit Map ChildrenOpens the Edit Map Children dialog, where the symbols shown on the map and their coordinates are managed.Edit Map ChildrenButton

Edit Map Children

The Edit Map Children dialog lists every symbol placed on the map, one row per symbol. Use Search to filter the list on Symbol Name, Instance Name or Position variable, Add to place an additional symbol, and Remove to delete the symbols whose row checkbox is selected.

A pin has two ways to get its position, and it uses the first one that is filled in: the Position variable, then the Longitude and Latitude columns. Filling in the Position variable does not clear the coordinates: they are what the pin returns to when the variable is cleared again. While the variable is filled in, the coordinate columns show the position it currently resolves to and cannot be edited.

Add opens the symbol list. After a symbol is chosen, the instance dialog opens so the instance name and the replacer values can be entered before the symbol is created, in the same way as creating a symbol from the Symbols menu. Press OK to place it on the map.

ColumnDescriptionExample
Symbol NameThe group symbol the pin was created from. Several pins can share one symbol.PumpSymbol
Instance NameThe name of this individual pin, which is what tells two pins of the same symbol apart.Pump_013
Position variableName of one variable whose value holds the complete position as lat,lon. It takes precedence over the coordinate columns and is read live, so the symbol follows the value as it changes. Use it for equipment that reports its own position, and for any pin whose position follows a variable.Truck1_Position
LongitudePosition of the pin when no Position variable is used, in decimal degrees from -180 to 180. A variable name may be entered instead of a number.4.4025
LatitudePosition of the pin when no Position variable is used, in decimal degrees from -90 to 90. A variable name may be entered instead of a number.51.2194
Min ScaleSize of the symbol when the map is fully zoomed out, as a factor of the size it was designed at. Leave empty for the default.0.4
Max ScaleSize of the symbol when the map is fully zoomed in, as a factor of the size it was designed at. Leave empty for the default.1

A symbol that is already on the page can also be placed on a map by dragging it onto the map and confirming. The symbol keeps its name, its replacer values and its link to a UDT instance. From that moment it is positioned by its Position variable or its coordinates instead of by dragging, so it stays hidden until one of the two is set.

Changes made in the dialog are applied to the map immediately and saved with the page.

Symbol Size and Zoom

A pin is drawn smaller as the map is zoomed out and larger as it is zoomed in, so that a wide view stays readable instead of filling with overlapping symbols. The size is set per pin with the Min Scale and Max Scale columns in the Edit Map Children dialog.

Min Scale is the size at the widest zoom level and Max Scale is the size at the closest zoom level, both as a factor of the size the symbol was designed at. The size moves evenly between the two across the zoom range. Leaving both columns empty applies the default, which is 0.4 at the widest zoom and 1 at the closest.

To keep a pin the same size at every zoom level, set both Min Scale and Max Scale to 1.

Scaling reduces overlap but does not remove it. Two pins that share one position, for example two symbols that use the same Position variable, are drawn on top of each other at every zoom level.

Position / Size

Configure the position and size of the Map object.

SettingDescriptionExampleUnits
TopTop position of the object.100px
LeftLeft position of the object.100px
WidthWidth of the object.600px
HeightHeight of the object.400px
Z-indexLayer order of the object. Higher values appear in front of lower values.10Number

Access Control

Configure access control for the Map object.

SettingDescriptionExampleUnits
Access Control EnableEnables access control evaluation for the object.trueBoolean
Access ControlExpression controlling who can use or see the object.SYSTEM.UserGroups == "Operators"Expression
Access Control FilterCSS filter applied when access control is used to alter the object appearance.blur(0px) contrast(30%)CSS filter

Visibility

Configure the runtime visibility and blinking behavior for the Map object.

SettingDescriptionExampleUnits
VisibilityExpression controlling whether the object is visible at runtime.PLC1.MapVisibleExpression
BlinkExpression or boolean controlling map blinking.PLC1.AlarmActiveBoolean or expression
Blink SpeedBlink speed used during runtime.1sSpeed
Blink OffsetOffsets the blink phase to stagger blinking between multiple objects.falseBoolean

Notes

The background map tiles are loaded from an online tile service, so the client needs an internet connection for the map background to be shown.

A map child is positioned by its Position variable or its Longitude and Latitude, so it stays where that source places it and is not moved by dragging on the canvas. Clicking a map child at runtime triggers the action configured on that symbol, for example opening its popup.

When a coordinate is entered as a variable name, enter the variable name as it is configured, for example Pump1_Latitude or PLC1.Latitude. The symbol is repositioned as soon as the variable value changes.

The Position variable holds both coordinates in one value, written as latitude first and longitude second and separated by a comma, for example 51.2194,4.4025. A semicolon is accepted as the separator as well. A value that does not contain exactly two usable numbers leaves the symbol hidden, so a position that is only half written is never shown at the wrong place.

A map child whose position cannot be resolved is hidden until a valid value is available. A pin with a Position variable that is not resolving stays hidden rather than falling back to its Longitude and Latitude, so a symbol is never drawn at an out-of-date location.

A position variable that was entered a moment ago is reported as not resolving yet until the next refresh, because it is subscribed from that moment on. A name that keeps reporting this after a refresh is a name that does not exist.

The map view, meaning the center and the zoom level, is stored with the page and is used as the starting view the next time the page is opened.

Deleting a Map object asks for confirmation first and states how many symbols are placed on it. Those symbols are part of the map and are deleted with it.

Something missing or wrong in this article? Contact us