> For the complete documentation index, see [llms.txt](https://docs.jmapcloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.jmapcloud.io/en/jmap-ng/jmap-ng-developer-documentation/startup-options.md).

# Startup Options

Startup options let you customize how **JMap Cloud NG** starts.

They can be provided in two ways:

* as URL parameters, when an option supports it;
* as a JavaScript object assigned to `window.JMAP_OPTIONS`.

Most URL parameters use the `ng` prefix to avoid conflicts with parameters used by the host page.

Below are examples of the URL and JavaScript object forms:

`https://ng.jmapcloud.io?ngProjectId=57ec1ca5-ddb8-4c71-ace4-0571129b017c`

```javascript
<script type="text/javascript">
    window.JMAP_OPTIONS = {
    projectId: "57ec1ca5-ddb8-4c71-ace4-0571129b017c",
    restBaseUrl: "https://api.jmapcloud.io",
    ui: "minimal",
    anonymous: true,
    map: {
      zoom: 9.757829447748511,
      center: {
        x: -73.60243569463414,
        y: 45.504533166207324
      },
      scaleControlVisible: true,
      scaleControlPosition: "top-right"
    }
  }
</script>
```

## Startup options Structure <a href="#jmap-ng-core" id="jmap-ng-core"></a>

JMAP\_OPTIONS is organized in three groups.

### 1. Base Options <a href="#core-options" id="core-options"></a>

Base options are placed directly at the root of JMAP\_OPTIONS.

They control startup behaviour shared by both minimal UI and full UI modes: project selection, authentication, locale, extensions, geolocation, and UI mode.

Example:

```javascript
<script type="text/javascript">
    window.JMAP_OPTIONS = {
    restBaseUrl: "https://api.jmapcloud.io",
    ui: "minimal",
    projectId: "my-project-id",
    anonymous: true,
    locale: "en"
  }
</script>
```

| **Option**                     | **Description**                                                                                                                                                                                                                                                                                                                                                                                             | **JavaScript Example**                                       | **URL Parameter Example**                                      | **Value**                     |                             |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------- | ----------------------------- | --------------------------- |
| **Rest API URL**               | **Mandatory.** Base URL used by JMap Cloud NG to call the JMap Cloud REST API. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#restBaseUrl)).This option is required unless the application is running in an environment where the REST API URL is provided by the hosting page or deployment configuration. | restBaseUrl: “<https://api.jmapcloud.io/“>                   | -                                                              | string                        |                             |
| **minimal UI ready callback**  | This function is triggered only once at startup, when the JMap Cloud NG minimal UI API is ready. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#onReady))                                                                                                                                                   | onReady: () => console.log("NG minimal UI is ready")         | -                                                              | javascript function() => void |                             |
| **Login as anonymous user**    | If true, NG will try to log in as an anonymous user. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#anonymous))                                                                                                                                                                                             | anonymous: true                                              | ngAnonymous=true                                               | true \| **false**             |                             |
| **Disable project change**     | If true, changing project (after one has been loaded) will be disabled. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#disableProjectChange))                                                                                                                                                               | disableProjectChange: true                                   | ngDisableProjectChange= true                                   | true \| **false**             |                             |
| **Extensions**                 | You can provide your own minimal UI mode extensions. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#extensions))                                                                                                                                                                                            | { extensions: \[ … ] }                                       | -                                                              | json / javascript             |                             |
| **Extensions overrides**       | During the development of a project extension, you can use this option to load your local code instead of the project's extension's jsUrl. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#extensionsUrlOverride))                                                                                           | { extensionsUrlOverride: \[ … ] }                            | -                                                              | json                          |                             |
| **Enable/Disable Geolocation** | By default, the geolocation is activated (if the browser supports it). You can disable the geolocation by using this option. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#geolocationEnabled))                                                                                                            | geolocationEnabled: false                                    | ngGeolocationEnabled =false                                    | **true** \| false             |                             |
| **Legacy authentication**      | If set to true, will revert to a REST API-based authentication setup ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#legacyAuthentication))                                                                                                                                                                  | legacyAuthentication: true                                   | ngLegacyAuthentication=true                                    | boolean                       |                             |
| **Project thumbnails**         | If true will load all project thumbnails (base 64 images) asynchronously. <mark style="color:$warning;">This has currently no effect in JMap Cloud</mark> ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#loadProjectThumbnails))                                                                            | loadProjectThumbnails: true                                  | -                                                              | boolean                       |                             |
| **Session language**           | If set to any of the locales supported by JMap NG, it will define the session locale, bypassing browser or user-defined locale. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#locale))                                                                                                                     | locale: “en“                                                 | ngLocale=fr                                                    | string                        |                             |
| **Organization id**            | The JMap Cloud organization id. Used when passing a session refresh token (see below). ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#organizationId))                                                                                                                                                      | organizationId: "my-organization-id"                         | organizationId="my-organization-id"                            | string                        |                             |
| **Project id**                 | Id of the JMap project to open. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#projectId))                                                                                                                                                                                                                  | projectId: "57ec1ca5-ddb8-4c71-ace4-0571129b017c"            | ngProjectId=57ec1ca5-ddb8-4c71-ace4-0571129b017c               | string                        |                             |
| **Project name**               | Name of the JMap project to open. If both a project id and a project name are provided, project id will be used. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#projectName))                                                                                                                               | projectName: “World“                                         | ngProjectName=The world **url encoded =>** ngProjectName=World | string                        |                             |
| **Projects loaded callback**   | You can provide some JS code to be executed when all project definitions have been loaded from the backend. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#onProjectsChange))                                                                                                                               | onProjectsChange: (params) => console.log( params.projects ) | -                                                              | javascript function() => void |                             |
| **Session refresh token**      | A JMap Cloud refresh token used to initiate a session. If valid, will be used to identify the user. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#token)). Using this option will automatically activate the legacy authentication.                                                                        | token: “v1.MRq\[.....]Rehef72YWws“                           | ngToken=v1.MRq\[.....]Rehef72YWws                              | string                        |                             |
| **UI mode**                    | Selects how much of the JMap Cloud NG interface is loaded.([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreOptions.html#ui))                                                                                                                                                                                               | ui: "minimal"                                                | ngUi=minimal                                                   | <p>string<br>"minimal"        | <strong>"full"</strong></p> |

### 2. Map Options

Map options are placed under the `map` object.

They control the initial map state and map controls. These options apply in both minimal UI and full UI modes.

Example:

```javascript
<script type="text/javascript">
    window.JMAP_OPTIONS = {
    restBaseUrl: "https://api.jmapcloud.io",
    map: {
      zoom: 10,
      center: {
        x: -73.6,
        y: 45.5
      },
      scaleControlVisible: false
    }
  }
</script>
```

<table data-header-hidden><thead><tr><th width="149"></th><th width="238"></th><th width="130"></th><th width="144"></th><th></th></tr></thead><tbody><tr><td><strong>Option</strong></td><td><strong>Description</strong></td><td><strong>JavaScript Example</strong></td><td><strong>URL Parameter Example</strong></td><td><strong>Value</strong></td></tr><tr><td><strong>Map initial bearing</strong></td><td>The initial bearing of the map (counterclockwise rotation). (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#bearing">API doc</a>). This option is overridden by the extent option</td><td>map: { bearing: 90 }</td><td>ngBearing=90</td><td>number</td></tr><tr><td><strong>Center</strong></td><td>Will center the map on the specified point. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#center">API doc</a>). This option is overridden by the extent option</td><td>map: { center: { x: 12.4, y: 45.34 } }</td><td>-</td><td>json</td></tr><tr><td><strong>Html container id</strong></td><td>You can place the map in the HTML div of your choice by identifying the div in the map parameter. If not set, a div is appended in the body root. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#containerId">API doc</a>)</td><td>map: { containerId: “my-div“ }</td><td>-</td><td>string</td></tr><tr><td><strong>Initial Extent</strong></td><td>Will adjust the map to fit the extent when it first loads. (sw = bbox south-west, ne = bbox north-east) (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#extent">API doc</a>). This option has precedence over the following options: bearing, center, rotation and zoom</td><td>map: { extent: { sw: { x: 12.4, y: 45.34 }, ne: { x: 24.4, y: 55.34} } }</td><td>ngExtent=12.48|45.34 |24.4|55.34 <strong>url encoded =></strong> ngExtent=12.48%7C45.34 %7C24.4%7C55.34</td><td>json | string</td></tr><tr><td><strong>Initial extent control visibility</strong></td><td>Controls whether the Initial Extent map control is visible. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#initialExtentControlVisible">API doc</a>)</td><td>map: { initialExtentControlVisible: false }</td><td>ngInitialExtentControlVisible=false</td><td><strong>true</strong> | false</td></tr><tr><td><strong>Maximum</strong> <strong>Extent</strong></td><td>Will constrain the map to the specified extent(sw = bbox south-west, ne = bbox north-east) (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#maximumExtent">API doc</a>).</td><td>map: { maximumExtent: { sw: { x: 12.4, y: 45.34 }, ne: { x: 24.4, y: 55.34} } }</td><td>ngMaximumExtent=12.48|45.34 |24.4|55.34 <strong>url encoded =></strong> ngMaximumExtent=12.48%7C45.34 %7C24.4%7C55.34</td><td>json | string</td></tr><tr><td><strong>Rotation control</strong></td><td>By default, the map rotation control is visible, but can be hidden with this parameter. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#mapRotationControlVisible">API doc</a>)</td><td>map: { mapRotation ControlVisible: true }</td><td>ngMapRotationControl Visible=false</td><td><strong>true</strong> | false</td></tr><tr><td><strong>Google Maps Api Key</strong></td><td><p><mark style="color:red;"><strong>This option is not yet available for JMap Cloud.</strong></mark></p><p></p><p>If no Google Maps API key is set in the JMap Cloud or JMap Server configuration, you can provide the API key as a JS parameter. The Google Maps API key is not mandatory, but if you don't provide one you won't have access to the Google Maps basemaps. (API doc)</p></td><td>map: { googleMapsApiKey: “Bse….32k“ }</td><td>-</td><td>string</td></tr><tr><td><strong>Mapbox token</strong></td><td>If no Mapbox access token is set in the JMap Cloud or JMap Server configuration, you can provide the token as a JS parameter. The Mapbox token is not mandatory, but if you don't provide one you won't have access to the Mapbox basemaps. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#mapboxToken">API doc</a>)</td><td>map: { mapboxToken: “xgb….4f5“ }</td><td>-</td><td>string</td></tr><tr><td><strong>Navigation history control visibility</strong></td><td>By default, the navigation history control is visible, but can be hidden with this parameter. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#navigationHistoryControlVisible">API doc</a>)</td><td>map: { navigationHistory ControlVisible: true }</td><td>ngNavigationHistory ControlVisible=true</td><td><strong>true</strong> | false</td></tr><tr><td><strong>Map ready callback</strong></td><td>This function is triggered only once, the first time the map is loaded. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#onStartupMapReadyFn">API doc</a>)</td><td>map: { onStartupMapReadyFn: map => { console.log(“The map is ready“, map) } }</td><td>-</td><td>javascript function(map: mapboxgl.Map) => void</td></tr><tr><td><strong>Map initial rotation</strong></td><td>The initial rotation of the map (clockwise rotation). (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#rotation">API doc</a>)</td><td>map: { rotation: 45 }</td><td>ngRotation=45</td><td>number</td></tr><tr><td><strong>Scale-control position</strong></td><td>The scale control position on the map. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#scaleControlPosition">API doc</a>)</td><td>map: { scaleControlPosition: “bottom-right“ }</td><td>-</td><td>“top-left” | “top-right” | “bottom-right” | “<strong>bottom-left”</strong></td></tr><tr><td><strong>Scale-control unit</strong></td><td>The scale control unit. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#scaleControlUnit">API doc</a>)</td><td>map: { scaleControlUnit: “imperial“ }</td><td>-</td><td>imperial | <strong>metric</strong> | nautical</td></tr><tr><td><strong>Scale-control visibility</strong></td><td>By default, the scale control is visible, but can be hidden with this parameter. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#scaleControlVisible">API doc)</a></td><td>map: { scaleControlVisible: true }</td><td>ngScaleControlVisible=false</td><td><strong>true</strong> | false</td></tr><tr><td><strong>Map Info-control visibility</strong></td><td>By default, the Map Info control is visible, but can be hidden with this parameter. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#mapInfoControlVisible">API doc</a>)</td><td>map: { mapInfoControlVisible: true }</td><td>ngMapInfoControlVisible=false</td><td><strong>true</strong> | false</td></tr><tr><td><strong>Terrain-control visibility</strong></td><td>By default, the Terrain control is visible, but can be hidden with this parameter. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#terrainControlVisible">API doc)</a></td><td>map: { terrainControlVisible: true }</td><td>ngTerrainControlVisible=false</td><td><strong>true</strong> | false</td></tr><tr><td><strong>Search</strong></td><td>When the map is loaded, will execute a search by attribute(s) on the layer, and zoom to the matching features. You can search using multiple attribute values by passing an array in the javascript form, or by passing trailing values in the URL form. An optional parameter lets you specify to display a MouseOver popup on the result feature. This popup will only be displayed if the <em>showMapPopup</em> parameter is true, and if there is only one result to the search. In the URL form, <em>showMapPopup</em> must be passed as a keyword, and <em>at the beginning</em> of the query string (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#zoom">API doc</a>)</td><td>map:{ search: { layerId: "a23bb5ea-2db8-4742-be92-cf2985ff9aeb", attributeName: “PEC“, attributeValue: [“RT 201“, "RT 202"], showMapPopup: true } }</td><td>ngSearch=showMapPopup |a23bb5ea-2db8-4742-be92-cf2985ff9aeb|PEC|RT 201|RT 202 <strong>url encoded =></strong> ngSearch=showMapPopup%7C2a23bb5ea-2db8-4742-be92-cf2985ff9aeb%7CPEC%7CRT%20201%7CRT%20202</td><td>json | string</td></tr><tr><td><strong>Zoom level</strong></td><td>The initial zoom level of the map. (<a href="https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG_Core___Types.JCoreMapOptions.html#zoom">API doc</a>). This option is overridden by the extent option</td><td>map: { zoom: 5.3456 }</td><td>-</td><td>number</td></tr></tbody></table>

### 3. Full UI Options

Full UI options are placed under the `application` object.

They only apply when JMap Cloud NG runs with the full interface, either explicitly with `ui: "full"` or by using the default mode.

Example:

```javascript
<script type="text/javascript">
  window.JMAP_OPTIONS = {
    ui: "full",
    restBaseUrl: "https://api.jmapcloud.io",
    application: {
      containerId: "my-app",
      panel: "selection",
      sidePanelInitialVisibility: false
    }
  }
</script>
```

| **Option**                           | **Description**                                                                                                                                                                                                                                                                                                                                                                     | **JavaScript Example**                                                                                 | **URL Parameter Example**                     | **Value**                                                                                                            |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Div container id**                 | You can choose the div where the Full UI (and the map) will be rendered in your page. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#containerId))                                                                                                                                | <p>application: {<br> containerId: “my-app“,<br> …<br>}</p>                                            | -                                             | string                                                                                                               |
| **Disable panels**                   | Will disable (and hide) the specified panels. Specifying "all" will hide all panels and remove the side menu ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#disabledPanels))                                                                                                      | <p>application: {<br> disabledPanels: \[ “print“, “mapcontext“ ],<br> …<br>}</p>                       | <p>ngDisabledPanels=<br>print,mapcontext</p>  | Array \| string                                                                                                      |
| **Extensions**                       | You can provide your own Full UI extensions . See the examples section for details. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#extensions))                                                                                                                                   | <p>application: {<br>  extensions: \[<br> …<br>]<br>}</p>                                              | -                                             | json / javascript                                                                                                    |
| **Geocoding control visibility**     | By default, the Geocoding control is visible, but can be hidden with this parameter. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#geocodingControlVisible))                                                                                                                     | <p>application: {<br> geocodingControlVisible: false,<br> …<br>}</p>                                   | ngGeocodingControlVisible=false               | **true** \| false                                                                                                    |
| **Login screen background image**    | You can set a custom background image for the login screen by setting an image url. This image will be displayed to the left of the JMap NG login form. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#loginBackgroundImageUrl)). Only effective when using legacy authentication | <p>application: {<br> loginBackgroundImageUrl: “<http://my-server/my-image“>,<br> …<br>}</p>           | -                                             | string                                                                                                               |
| **Logo image**                       | You can set a custom logo image by setting an image url. The logo will be displayed above the JMap NG login form. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#logoImageUrl)). Only effective when using legacy authentication                                                  | <p>application: {<br>  logoImageUrl: “<http://my-server/my-image“>,<br> …<br>}</p>                     | -                                             | string                                                                                                               |
| **Full UI loaded callback**          | You can provide JS code that will be executed when the full UI is ready. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#onAppLoad))                                                                                                                                               | <p>application: {<br>  onAppLoad: () => console.log(“Full UI is loaded“),<br> …<br>}</p>               | -                                             | javascript function() => void                                                                                        |
| **Full UI unloaded callback**        | You can provide JS code that will be executed when the full UI is unloaded. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#onAppUnload))                                                                                                                                          | <p>application: {<br>  onAppUnload: () => console.log(“Full UI is not loaded anymore“),<br> …<br>}</p> | -                                             | javascript function() => void                                                                                        |
| **Display a panel**                  | Will show the specified panel at startup. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#panel))                                                                                                                                                                                  | <p>application: {<br> panel: “query“,<br> …<br>}</p>                                                   | <p>ngPanel=<br>selection</p>                  | "**layer**" \| "selection" \| "measure" \| "mapcontext"\| "print" \| "user" \| "query" \| "annotation" \| "geometry" |
| **Project list background image**    | You can set a custom background image for the project list screen by setting an image url. This image will be displayed to the left of the project list. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#projectBackgroundImageUrl))                                               | <p>application: {<br> projectBackgroundImageUrl: “<http://my-server/my-image“>,<br> …<br>}</p>         | -                                             | string                                                                                                               |
| **Initial side panel visibility**    | Controls side panel initial visibility. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#sidePanelInitialVisibility))                                                                                                                                                               | <p>application: {<br> sidePanelInitialVisibility: false,<br> …<br>}</p>                                | <p>ngSidePanelInitialVisibility=<br>false</p> | **true** \| false                                                                                                    |
| **Simple Search control visibility** | By default, the Simple Search control is visible, but can be hidden with this parameter. ([API doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#simpleSearchControlVisible))                                                                                                              | <p>application: {<br> simpleSearchControlVisible: false,<br> …<br>}</p>                                | ngSimpleSearchControlVisible=false            | **true** \| false                                                                                                    |
| **Theme**                            | Will set the theme, dark or light. ([api doc](https://k2geospatial.github.io/jmapcloud-frontend/jmapcloud-ng-types/latest/interfaces/JMap_Cloud_NG___Types.JApplicationOptions.html#theme))                                                                                                                                                                                         | <p>application: {<br>  theme: “light“,<br> …<br>}</p>                                                  | ngTheme=light                                 | light \| **dark**                                                                                                    |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.jmapcloud.io/en/jmap-ng/jmap-ng-developer-documentation/startup-options.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
