# GMF constants definitions

### Type Definitions

#### authenticationBaseUrl

URL to the authentication web service.

##### Type:

- string

#### defaultLang

Default language

##### Type:

- string

#### fulltextsearchUrl

URL to the full-text search web service.

##### Type:

- string

#### gmfAuthenticationConfig

The Authentication configuration.

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`allowPasswordReset` | boolean | Whether to show the password forgotten link. Default to true.
`allowPasswordChange` | boolean | Whether to show the change password button. Default to true. You can also specify a `PasswordValidator` object to add constraint on user's new password.

#### gmfAuthenticationNoReloadRole

Don't request a new user object from the back-end after logging out if the logged-in user's role has this role.

##### Type:

- string

#### gmfBackgroundLayerSelectorOptions

The background layer selector options

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`opacityLayer` | string | <optional> | The background layer with an opacity slider.

#### gmfContextualDataOptions

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`rasterParams` | Object.<string, string> | The raster service parameters
`projections` | Array.<string> |

#### gmfCsvFilename

The CSV file name.

##### Type:

- string

#### gmfCustomJavascriptUrl

Use to inject custom javascript from an URL.

##### Type:

- string

#### gmfCustomStylesheetUrl

Use to inject custom stylesheet from an URL.

##### Type:

- string

#### gmfDisclaimerOptions

The disclaimers options

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`popup` | boolean | <optional> | Whether to show the disclaimer messages in popups or not. Defaults to `false`.
`layerVisibility` | boolean | <optional> | Only display the disclaimer if the layer is visible. Defaults to `true`.
`external` | boolean | <optional> | Whether to use disclaimer messages elsewhere or not. Default to `false`. If true, you should use the externalMessage and the externalVisibility too.

#### gmfDisplayQueryGridOptions

The display query grid component options.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`featuresStyle` | module:ngeo/options.js~StyleLike |  | A style object for all features from the result of the query.
`selectedFeatureStyle` | module:ngeo/options.js~StyleLike |  | A style object for the currently selected features.
`removeEmptyColumns` | boolean | <optional> | Should empty columns be hidden? Default: `false`.
`maxRecenterZoom` | number | <optional> | Maximum zoom-level to use when zooming to selected features.
`mergeTabs` | GridMergeTabs | <optional> | Configuration to merge grids with the same attributes into a single grid.

#### gmfDisplayQueryWindowOptions

The display query window component options.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`featuresStyle` | module:ngeo/options.js~StyleLike |  | A style object for all features from the result of the query.
`selectedFeatureStyle` | module:ngeo/options.js~StyleLike |  | A style object for the currently selected features.
`collapsed` | boolean | <optional> | If the query result window is collapsed.
`displayNullAttributes` | boolean | <optional> | If the attributes with null values should be displayed.

#### gmfEditFeatureOptions

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`highlightStyle` | module:ngeo/options.js~StyleLike | A style object for highlighting of feature.
`tolerance` | number | The buffer in pixels to use when making queries to get the features.
`closeAfterSave` | boolean | If true, immediately return to the main edit panel after save. Default is false.

#### gmfElevationOptions

The elevation (raster) options.

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`layers` | Array.<string> | Elevation layers to use.
`layersConfig` | Object.<string, LayerConfig> | Elevation layers configurations.

#### gmfExternalOGCServers

##### Type:

- Array.<ExternalOGCServer>

#### gmfFloors

Floor dimension values and labels.

##### Type:

- Array.<Object.<string, string>>

#### gmfLayersUrl

URL to the layers web service.

##### Type:

- string

#### gmfLayerTreeOptions

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`openlinksinnewwindow` | boolean | if true, open metadataURLs in a new window. Otherwise open them in a popup.
`isExpanded` | boolean | [Experimental] Whether all the layer group is expanded by default.

#### gmfMobileMeasureAreaOptions

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`precision` | number | <optional> | 2 | The number of significant digits to display.
`sketchStyle` | module:ngeo/options.js~StyleLike |  |  | A style for the measure area.

#### gmfMobileMeasureLengthOptions

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`precision` | number | <optional> | 2 | The number of significant digits to display.
`sketchStyle` | module:ngeo/options.js~StyleLike |  |  | A style for the measure length.

#### gmfMobileMeasurePointOptions

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`decimals` | number | The number of significant digits to display.
`format` | string | The used formatter
`rasterLayers` | Array.<MeasureRasterLayer> | Raster elevation layers to get information under the point and its configuration.
`sketchStyle` | module:ngeo/options.js~StyleLike | A style for the measure point.

#### gmfMousePositionOptions

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`projections` | Array.<MousePositionProjection> | The list of the projections.

#### gmfObjectEditingToolsOptions

Additional configuration options for the object editing tools directive.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`regularPolygonRadius` | number | <optional> | 100 | The radius of the shapes created by the regular polygon radius creation tool. The value is in map units.

#### gmfOptions

The application wide options.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`showInfobar` | boolean | <optional> | false | Show the information bar.
`geolocalisation` | boolean | <optional> | false | Show the geolocalisation button.
`view` | View |  |  | The view definition.
`map` | Map |  |  | The map definition.
`zoom` | number |  |  | The default zoom.
`mapControls` | Array.<module:ol/control/Control.js~default> | <optional> |  | The map control.
`mapInteractions` | Array.<module:ol/interaction/Interaction.js~default> | <optional> |  | The map interactions.
`interationDefaults` | module:ol/interaction.js~DefaultsOptions | <optional> |  | The map interactions.
`controlZoom` | module:ol/control/Zoom.js~Options |  |  | The zoom control options
`cssVars` | Object.<string, string> |  |  | The css variables, in particular brand-primary and brand-secondary that will set all the branding.

#### gmfPermalinkOptions

Configuration options for the permalink service.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`crosshairStyle` | module:ngeo/options.js~StyleLike | <optional> | An alternate style for the crosshair feature added by the permalink service.
`crosshairEnabledByDefault` | boolean | <optional> | Display the crosshair, gets overridden by the `map_crosshair` parameter. Default is `false`.
`projectionCodes` | Array.<string> | <optional> | EPSG codes (e.g. 'EPSG:3857' or '3857'). The permalink service will accept coordinates in these projections and try to detect which projection the given coordinates are in.
`useLocalStorage` | boolean | <optional> | Store the values in the local storage. Default is `false`.
`pointRecenterZoom` | number | <optional> | Zoom level to use when result is a single point feature. If not set the map is not zoomed to a specific zoom level.

#### gmfPrintOptions

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`scaleInput` | boolean | <optional> |
`legend` | OptionsLegendType | <optional> | Options used to build the legend.
`goodnessOfFit` | number | <optional> |
`defaultLayout` | string | <optional> |
`rotateMask` | boolean | <optional> | True to apply rotation on the mask instead of the map. By default, the map rotates.
`fieldValues` | Object.<string, (string|number|boolean)> | <optional> | optional. Key, value object to define default value in each of your print panel field. The key refers to the property's name of the field. Example: {'comments': 'demo', 'legend': false}. Doesn't work for the DPI and the scale. Server's values are used in priority.
`hiddenAttributes` | Array.<string> | <optional> | The list of attributes that should be hidden.

#### gmfPrintUrl

URL to MapFishPrint.

##### Type:

- string

#### gmfProfileJsonUrl

URL to the profile web service.

##### Type:

- string

#### gmfProfileOptions

The elevation (raster) options.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`numberOfPoints` | number | <optional> | 100 | Maximum limit of points to request.
`hoverPointStyle` | module:ngeo/options.js~StyleLike |  |  | The hover point style.

#### gmfProjectionsOptions

The available projections definitions.

##### Type:

- Object.<string, module:api/options.js~Projection>

#### gmfQueryGrid

Use the query grid instead the query window to display the query result.

##### Type:

- boolean

#### gmfRasterUrl

URL to the raster web service.

##### Type:

- string

#### gmfSearchGroups

##### Type:

- Array.<string>

#### gmfSearchOptions

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`styles` | Object.<string, module:ngeo/options.js~StyleLike> |  |  | A map of styles to apply on searched features. Keys must be the 'layer_name' property of features except for coordinates where the key ifor its style is the value of the constant 'gmf.COORDINATES_LAYER_NAME'. The 'default' key is used to apply the default style.
`coordinatesProjections` | Array.<string> |  |  | codes of supported projections for coordinates search (projections must be defined in ol3). If not provided, only the map's view projection format will be supported.
`clearButton` | boolean | <optional> | true | Clear button in the input search.
`delay` | number | <optional> | 50 | bloodhound request delay in ms.
`colorChooser` | boolean | <optional> | false | Whether to let the user change the style of the feature on the map.
`maxZoom` | number | <optional> | 16 | maximum zoom we will zoom on result.
`placeholder` | string | <optional> | "Search…" | The placeholder.
`datasources` | Array.<SearchComponentDatasource> |  |  | The used datasources.

#### gmfShareOptions

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`enableEmail` | boolean | <optional> | true | Enhable email.

#### gmfShortenerCreateUrl

URL to the shortener web service.

##### Type:

- string

#### gmfSnappingOptions

The snapping options

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`maxFeatures` | number | <optional> | The max number of features in the extent to allows snapping

#### gmfThemesOptions

Configuration options for the themes service.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`addBlankBackgroundLayer` | boolean | <optional> | Whether to add a blank background layer to the list of available backgrounds.

#### gmfTreeManagerModeFlush

Flush mode active?

##### Type:

- boolean

#### gmfTreeUrl

URL to the theme web service.

##### Type:

- string

#### GridMergeTabs

Configuration option for module:gmf/query/gridComponent.js to merge grid tabs. E.g. `'two_wheels_park': ['velo_park', 'moto_park']}` merges the sources with label `velo_park` and `moto_park` into a new source `two_wheels_park`.

##### Type:

- Object.<string, Array.<string>>

#### langUrls

Languages URL

##### Type:

- Object.<string, string>

#### LayerConfig

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`filter` | string | <optional> |
`args` | Array.<string> | <optional> |
`postfix` | string | <optional> |
`separator` | string | <optional> |

#### Map

The map definition.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`projection` | string |  |  | The main projection.
`pixelRatio` | number | <optional> |  | The ratio between physical pixels and device-independent pixels (dips) on the device.
`maxTilesLoading` | number | <optional> | 16 | Maximum number tiles to load simultaneously.
`moveTolerance` | number | <optional> | 1 | The minimum distance in pixels the cursor must move to be detected as a map move event instead of a click. Increasing this value can make it easier to click on the map.

#### MeasureRasterLayer

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`name` | string |  |
`decimals` | number | <optional> |
`unit` | string | <optional> |

#### MousePositionProjection

Projection object for the MousePositionDirective. Define a label and a filter to use to display coordinates for a projection.

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`code` | string | The epsg name of a projection.
`label` | string | The label to display with this projection.
`filter` | string | The filter function to use to format this projection. Arguments can be passed with colon as separator (example: MyFilter:args1:args2:...)

#### OptionsLegendType

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`useBbox` | boolean | <optional> | Use or not the bbox. Default to true. For QGIS server only.
`label` | Object.<string, boolean> |  | The key is the server type (`mapserver`, `qgis`, ...), if the value is `false` the name of the layer will be not displayed. This is used to avoid duplicated title, as text and in the legend image.
`params` | Object.<string, Object.<string, string>> |  | The key is the server type (`mapserver`, `qgis`, ...) or `image` for an URL from a metadata. The value is some additional parameters set in the query string.
`showGroupsTitle` | boolean | <optional> | Display or not groups title in the legend. default to true. Switching to false is useful to obtains a "flat" legend.

#### SearchAction

##### Type:

- Object

##### Properties:

Name | Type | Description
--- | --- | ---
`action` | string | The action
`title` | string | The title

#### SearchComponentDatasource

Datasource configuration options for the search directive.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Description
--- | --- | --- | ---
`bloodhoundOptions` | Bloodhound.BloodhoundOptions.<GeoJSON.FeatureCollection> | <optional> | The optional Bloodhound configuration for this data set. See: https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
`labelKey` | string |  | The name of a corresponding GeoJSON property key in the current dataset. The bound value of this property key will be used as label.
`groupValues` | Array.<string> | <optional> | Possible values for the 'layer_name' key. Used to define groups of dataset.
`groupActions` | Array.<SearchAction> | <optional> | List of allowed actions. The list may contain a combination of `add_theme`, `add_group` or `add_layer`
`projection` | string | <optional> | The geometry's projection for this set of data.
`typeaheadDatasetOptions` | Twitter.Typeahead.Dataset.<module:ol/Feature.js.<module:ol/geom/Geometry.js>> | <optional> | The optional Twitter.Typeahead. configuration for this dataset. See: https://github.com/twitter/typeahead.js/blob/master/
`url` | string | <optional> | URL of the search service. Must contain a '%QUERY' term that will be replaced by the input string.
`datasetTitle` | string | <optional> |

#### View

The view definition.

##### Type:

- Object

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`projection` | string |  |  | The main projection.
`center` | Array.<number> | <optional> |  | The initial center for the view. If a user projection is not set, the coordinate system for the center is specified with the `projection` option. Layer sources will not be fetched if this is not set, but the center can be set later with #setCenter.
`constrainRotation` | boolean | number | <optional> | true | Rotation constraint. `false` means no constraint. `true` means no constraint, but snap to zero near zero. A number constrains the rotation to that number of values. For example, `4` will constrain the rotation to 0, 90, 180, and 270 degrees.
`enableRotation` | boolean | <optional> | true | Enable rotation. If `false`, a rotation constraint that always sets the rotation to zero is used. The `constrainRotation` option has no effect if `enableRotation` is `false`.
`extent` | Array.<number> | <optional> |  | The extent that constrains the view, in other words, nothing outside of this extent can be visible on the map.
`constrainOnlyCenter` | boolean | <optional> | false | If true, the extent constraint will only apply to the view center and not the whole extent.
`smoothExtentConstraint` | boolean | <optional> | true | If true, the extent constraint will be applied smoothly, i.e. allow the view to go slightly outside of the given `extent`.
`maxResolution` | number | <optional> |  | The maximum resolution used to determine the resolution constraint. It is used together with `minResolution` (or `maxZoom`) and `zoomFactor`. If unspecified it is calculated in such a way that the projection's validity extent fits in a 256x256 px tile. If the projection is Spherical Mercator (the default) then `maxResolution` defaults to `40075016.68557849 / 256 = 156543.03392804097`.
`minResolution` | number | <optional> |  | The minimum resolution used to determine the resolution constraint. It is used together with `maxResolution` (or `minZoom`) and `zoomFactor`. If unspecified it is calculated assuming 29 zoom levels (with a factor of 2). If the projection is Spherical Mercator (the default) then `minResolution` defaults to `40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253`.
`maxZoom` | number | <optional> | 28 | The maximum zoom level used to determine the resolution constraint. It is used together with `minZoom` (or `maxResolution`) and `zoomFactor`. Note that if `minResolution` is also provided, it is given precedence over `maxZoom`.
`minZoom` | number | <optional> | 0 | The minimum zoom level used to determine the resolution constraint. It is used together with `maxZoom` (or `minResolution`) and `zoomFactor`. Note that if `maxResolution` is also provided, it is given precedence over `minZoom`.
`multiWorld` | boolean | <optional> | false | If `false` the view is constrained so only one world is visible, and you cannot pan off the edge. If `true` the map may show multiple worlds at low zoom levels. Only used if the `projection` is global. Note that if `extent` is also provided it is given precedence.
`constrainResolution` | boolean | <optional> | false | If true, the view will always animate to the closest zoom level after an interaction; false means intermediary zoom levels are allowed.
`smoothResolutionConstraint` | boolean | <optional> | true | If true, the resolution min/max values will be applied smoothly, i. e. allow the view to exceed slightly the given resolution or zoom bounds.
`showFullExtent` | boolean | <optional> | false | Allow the view to be zoomed out to show the full configured extent. By default, when a view is configured with an extent, users will not be able to zoom out so the viewport exceeds the extent in either dimension. This means the full extent may not be visible if the viewport is taller or wider than the aspect ratio of the configured extent. If showFullExtent is true, the user will be able to zoom out so that the viewport exceeds the height or width of the configured extent, but not both, allowing the full extent to be shown.
`resolution` | number | <optional> |  | The initial resolution for the view. The units are `projection` units per pixel (e.g. meters per pixel). An alternative to setting this is to set `zoom`. Layer sources will not be fetched if neither this nor `zoom` are defined, but they can be set later with #setZoom or #setResolution.
`resolutions` | Array.<number> | <optional> |  | Resolutions to determine the resolution constraint. If set the `maxResolution`, `minResolution`, `minZoom`, `maxZoom`, and `zoomFactor` options are ignored.
`rotation` | number | <optional> | 0 | The initial rotation for the view in radians (positive rotation clockwise, 0 means North).
`zoom` | number | <optional> |  | Only used if `resolution` is not defined. Zoom level used to calculate the initial resolution for the view.
`zoomFactor` | number | <optional> | 2 | The zoom factor used to compute the corresponding resolution.