Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

NameDescription
formatLatLng(latitude, longitude)Format lat/lng to a readable string with decimal degrees
Example: {formatLatLng(properties.begin_latitude, properties.begin_longitude)}
formatGeometry(geometry)Format the geojson geometry and display it as human readable coordinates. Only works for type=point
Example: {formatGeometry(geometry)}
addFilterButton(name, value)Add a button to request filtering by an attribute
Example: {addFilterButton("platform", properties.platform)}
formatDate(isoDateString)Make ISO Timestring more readable
Example: {formatDate(properties.date_time_start)}
isDefined(valueToCheck, then, else)

Only returns the given string if the first value is not null or undefined. Used as a way to implement conditions. Uses optional else-value if not defined.
Example: {isDefined(properties.date_time_end, "Date Time Start", "Date Time")}

concatIfDefined(concat1, concat2, ...)

Concats values if every value is defined (not null or undefined)
Example: {concatIfDefined(properties.elevation, " m")}

encodeURLComponent(urlComponent)

Encode String to URL Compatible characters
Example: {encodeURLComponent("PS133/2_0_Underway-6")}

round(number, decimals)Round a number to the given decimals
Example: {round("1.12345", "3")}
splitString(string, substring, index)

Split a string at a substring and return the given index

Example: {splitString("Hello World", " ", "1")}

substring(string, startIndex, endIndex)

Split a string at an index and get the substring

Example: {substring("Hello World", "0", "5")}

setTitle(str1, str2, ...)

Defines the title in data-title for the whole popup feature. The PopupRenderer will extract the title from that property to display it in the header. This is directly set in the container.

Example: {setTitle("Event: ", properties.event)}

parseJSON(jsonstring, key1, key2, ...)

Parses a json string and outputs the value of the given property identified by the list of keys

Example: {parseJSON('{"outer": {"inner": "Hello World"}}', "outer", "inner")}

noCopy()

Prevents the copy button to be displayed in a table row

hideOnSiteStart(site)
hideOnSiteEnd(site)

Prevents content from being rendered by inserting a comment if the site matches. These functions need to be used together to mark an area to be removed

Example: {hideOnSiteStart("gallery")} ...... {hideOnSiteEnd("gallery")}

parseMarkdown(text)

Parse markdown text to html. Useful when text from a variable/property is formatted as markdown e.g. layer.abstract

Example: {parseMarkdown(layer.abstract)}

joinArray(array, seperator)

Join Array values as a string. Default seperator is ", "

Example: {joinArray(array, " - ")}

displayLayerLegend()

Display the active layers legend graphic

displayImage(src, width (optional), height (optional), srcset (optional))

Display an image. Clicking on the image opens it in a fullscreen lightbox that can be zoomed.

Example: {displayImage(propertie.picture, properties.width, properties.height, properties.srcset)}

displayVideo(media, width, height, thumbnail (optional), cover (optional), poster (optional))

The following keys are supported: "media" (url to media file), thumbnail (url to webvtt file for seekbar thumbnails), cover (url to video cover) and poster (url to background poster on video player loading). They contain the respective urls.

Example: {displayVideo(properties.video, properties.width, properties.height, properties.thumbnail, propertie.cover)}

displayVideoPlayerKeys()

Displays a link to open a documentation of video player hotkeys.

Recommendations

  • The content should be structured vertically, because the popups and sidebars have a limited width
  • Ideally the metadata is structured in a two-column table like the example below
  • The popup template should not contain more than 

...