Key Concepts

Have you explored the Geocortex Web Designer?

The Geocortex Web Designer allows you to edit your application's layout, configure custom behaviors for buttons and other UI components, and solve complex business problems through Geocortex Workflow. Many use cases can be solved through the Geocortex Web Designer and don't require custom development.

Applications#

The core element of Geocortex Web is an Application. Applications are composed of three main pieces:

1. Layout XML that represents the visual layout of the application.#

<layout xmlns="https://geocortex.com/layout/v1">
<map config="default" />
</layout>

An layout is composed of components, such as a <map>, which are the conceptual building blocks of an application. Components can define their own UI, consume configuration, and can be nested and interact with other components.

Every component can have a config attribute; this attribute links a layout component to the app config.

2. App Config JSON that configures the application.#

{
"schemaVersion": "1.0",
"items": [
{
"$type": "map-extension",
"id": "default",
"onInitialized": [
{
"name": "ui.alert",
"arguments": {
"message": "Hello World"
}
}
]
}
]
}

App Config files describe component configuration and other values relevant to application behavior. An app config file is composed of a list of app items. App items can correspond to components in the layout, portal items, or any other defined item type.

3. The Geocortex Web code which renders the layout and powers functionality.#

Geocortex Web consumes layout and app config to create fully functional web mapping applications. You can use Geocortex Web out of the box, or extend it using the Geocortex Web SDK.


These three pieces are the building blocks behind an application, with the layout.xml and app.json files being the driving forces that control how an application looks, how it responds to user interaction, and what data it consumes. Extensive customization can be done simply by modifying these two files, without requiring any custom code.