## Index

### Classes

- AbstractAPIController
- AbstractDesktopController
- AbstractMobileController
- ArcGISGeoJSON
- CustomSnap
- DatasourceManager
- DateIsBetween
- DrawEvent
- FeatureHash
- FilterSelectorController
- GmfExternalDatasourceOGC
- GoogleStreetviewService
- MapillaryService
- Mask
- Restorer
- Search
- SelectEvent
- ServiceManager
- StreetviewController
- SwipeController
- TileDownloader

### Variables

- DATASOURCE_ID
- Downloader
- EXCLUDE_PROPERTIES
- FEATURE_STYLE_PROP
- LAYER_NODE_NAME_KEY
- NODE_IS_LEAF
- SerDes
- Service
- TOLERANCE
- exports
- extractor
- layerIdentifier
- modifierPressed
- name

### Functions

- AbstractAppController
- DMSCoordinatesFilter
- DisclaimerController
- DurationFilter
- EditingSnappingService
- NumberCoordinatesFilter
- NumberFilter
- PermalinkService
- ScalifyFilter
- UnitPrefixFilter
- WfsPermalinkService
- augmentBreadcrumb
- blobToDataUrl
- buildStyle
- buttonComponent
- buttonGroupComponent
- colorPickerComponent
- contextualDataComponent
- contextualDataComponentContent
- controlComponent
- dateBetween
- datePickerComponent
- dateTimeComponent
- dpi
- dragPanCondition
- drawComponent
- drawPointComponent
- drawRectangleComponent
- drawTextComponent
- drawinfDrawFeatureComponent
- drawingDrawFeatureComponent
- editingCreateFeatureComponent
- editingCreateRegularPolygonFromClickComponent
- editingEditFeatureComponent
- editingExportFeaturesComponent
- extentToRectangle
- fileDrop
- geolocationComponent
- getBrowserLanguage
- gmfLayertreeComponent
- gmfMapComponent
- hasCoarsePointingDevice
- httpInterceptor
- interactionDecoration
- isEventUsinCtrlKey
- layerDecoration
- layerLoading
- layertreeTimeSliderComponent
- loaderSpinner
- magnitude2
- mapComponent
- mapResenterComponent
- mapResizeComponent
- mapScaleselectorComponent
- measureAreaComponent
- measureAzimutComponent
- measureLengthComponent
- messagePopopComponent
- messagePopoverAnchorComponent
- messagePopoverComponent
- messagePopoverContentComponent
- mobileMeasureAreaComponent
- mobileMeasureLenthComponent
- mobileMeasurePointComponent
- mobileNavigationBackComponent
- mobileNavigationBackOnClickComponent
- mobileNavigationComponent
- ngeoOfflineTemplateUrl
- normalizeURL
- objectEditingGetWMSFeatureComponent
- objectEditingToolsComponent
- processDrag_
- profileDrawLineComponent
- profileElevationComponent
- pushUnlessIncluded
- querable
- rasterComponent
- sortableComponent
- traverseLayer
- trustHtmlAutoFilter
- trustHtmlFilter
- unlistenByKeys

### Object literals

- ArrowDirections
- ArrowPositions
- authenticationComponent
- backgroundlayerselectorComponent
- disclaimerComponent
- dynamicUrl
- editingAttributeComponent
- floorSelectorComponent
- gmfBackgroundlayerStatus
- gridComponent
- headerComponent
- layertreeComponent
- lidarprofileComponent
- lidarprofilePanelComponent
- mapMousepositionComponent
- messageModalComponent
- ngeoMessageDisplaywindowComponent
- objecteditingComponent
- olscControls3dComponent
- permalinkShareComponent
- printComponent
- profileComponent
- queryGridComponent
- queryWindowComponent
- rasterWidgetComponent
- routingFeatureComponent
- routingNominatimInputComponent
- searchComponent
- themeSelectorComponent

## Variables

### Const DATASOURCE_ID

DATASOURCE_ID: "dataSourceId" = "dataSourceId"

- Defined in src/map/LayerHelper.js:84

Id of the datasource

### Const Downloader

Downloader: Downloader = class {/*** @ngInject* @param {import("ngeo/offline/Configuration.js").default} ngeoOfflineConfiguration* A service for customizing offline behaviour.*/constructor(ngeoOfflineConfiguration) {/*** @private* @type {import("ngeo/offline/Configuration.js").default}*/this.configuration_ = ngeoOfflineConfiguration;/*** @type {?TilesDownloader}* @private*/this.tileDownloader_ = null;}cancel() {if (this.tileDownloader_) {this.tileDownloader_.cancel();}}/*** @param {import("./index.js").OfflineLayerMetadata} layerMetadata Layers metadata.* @param {import("./index.js").OfflineTile[]} queue Queue of tiles to download.*/queueLayerTiles_(layerMetadata, queue) {const source = /** @type {olSourceTileWMS|olSourceWMTS} */ (layerMetadata.source);const {map, extentByZoom} = layerMetadata;if (!source) {return;}console.assert(source instanceof olSourceTileWMS || source instanceof olSourceWMTS);const projection = map.getView().getProjection();const tileGrid = source.getTileGrid();const tileUrlFunction = source.getTileUrlFunction();console.assert(extentByZoom);for (const extentZoom of extentByZoom) {const z = extentZoom.zoom;const extent = extentZoom.extent;/*** @type {import("./index.js").OfflineTile[]}*/const queueByZ = [];/*** @type {number}*/let minX;/*** @type {number}*/let minY;/*** @type {number}*/let maxX;/*** @type {number}*/let maxY;tileGrid.forEachTileCoord(extent, z, (coord) => {maxX = coord[1];maxY = coord[2];if (minX === undefined || minY === undefined) {minX = coord[1];minY = coord[2];}const url = tileUrlFunction(coord, DEVICE_PIXEL_RATIO, projection);console.assert(url);if (url) {/*** @type {import("./index.js").OfflineTile}*/const tile = {coord, url, response: null};queueByZ.push(tile);}});const centerTileCoord = [z, (minX + maxX) / 2, (minY + maxY) / 2];queueByZ.sort((a, b) => magnitude2(a.coord, centerTileCoord) - magnitude2(b.coord, centerTileCoord));queue.push(...queueByZ);}}/*** @param {import("ol/extent.js").Extent} extent The extent to download.* @param {import("ol/Map.js").default} map The map to work on.* @return {Promise<*>} A promise resolving when save is finished.*/save(extent, map) {/*** @type {!import("./index.js").OfflineLayerMetadata[]}*/const layersMetadatas = this.configuration_.createLayerMetadatas(map, extent);/*** @type {!import("./index.js").OfflinePersistentLayer[]}*/const persistentLayers = [];/*** @type {import("./index.js").OfflineTile[]}*/const queue = [];/*** @type {number[]}*/const zooms = [];for (const layerItem of layersMetadatas) {if (layerItem.layerType === 'tile') {/*** @type {import("./index.js").OfflineTile[]}*/const tiles = [];this.queueLayerTiles_(layerItem, tiles);queue.push(...tiles);}persistentLayers.push({backgroundLayer: layerItem.backgroundLayer,layerType: layerItem.layerType,layerSerialization: layerItem.layerSerialization,key: this.configuration_.getLayerKey(layerItem),});layerItem.extentByZoom.forEach((obj) => {const zoom = obj.zoom;if (!zooms.includes(zoom)) {zooms.push(zoom);}});}/*** @type {import("./index.js").OfflinePersistentContent}*/const persistentObject = {extent: extent,layers: persistentLayers,zooms: zooms.sort((a, b) => (a < b ? -1 : 1)),};const setOfflineContentPromise = this.configuration_.setItem('offline_content', persistentObject);const maxDownloads = this.configuration_.getMaxNumberOfParallelDownloads();this.tileDownloader_ = new TilesDownloader(queue, this.configuration_, maxDownloads);const tileDownloadPromise = this.tileDownloader_.download();const allPromise = Promise.all([setOfflineContentPromise, tileDownloadPromise]);const setHasOfflineData = () => this.configuration_.setHasOfflineData(true);allPromise.then(setHasOfflineData, setHasOfflineData);return allPromise;}}

- Defined in src/offline/Downloader.js:41

### Const EXCLUDE_PROPERTIES

EXCLUDE_PROPERTIES: string[] = ['boundedBy']

- Defined in api/src/Map.js:92

### Const FEATURE_STYLE_PROP

FEATURE_STYLE_PROP: string = "_ngeo_style"

- Defined in src/print/VectorEncoder.js:73

### Const LAYER_NODE_NAME_KEY

LAYER_NODE_NAME_KEY: "layerNodeName" = "layerNodeName"

- Defined in src/map/LayerHelper.js:72

Layer node name key in layer parameters. To identify the OpenLayers layer by its name.

### Const NODE_IS_LEAF

NODE_IS_LEAF: "layerIsLeaf" = "layerIsLeaf"

- Defined in src/map/LayerHelper.js:79

Key to know if the layer is used as a leaf in a tree. In mixed WMS groups that would be probably the case but not in a not-mixed WMS groups where we want to toggle each wms names (sub-layers).

### Const SerDes

SerDes: SerDes = class {/*** @param {unknown} options The options*/// @ts-ignoreconstructor({gutter}) {/*** @private*/this.gutter_ = gutter;}/*** @private* @param {import("ol/Object.js").default} olObject An OL object* @return {Object<string, string|number|string[]|boolean>} The serializable properties of the object*/createBaseObject_(olObject) {const properties = olObject.getProperties();/*** @type {Object<string, string|number>}*/const obj = {};for (const key in properties) {const value = properties[key];const typeOf = typeof value;if (typeOf === 'string' || typeOf === 'number') {obj[key] = value;}}return obj;}/*** @param {OlTilegridTileGrid} tilegrid .* @return {string} .*/serializeTilegrid(tilegrid) {/*** @type {Object<string, unknown>}*/const obj = {};obj.extent = tilegrid.getExtent();obj.minZoom = tilegrid.getMinZoom();obj.origin = tilegrid.getOrigin(0); // hackobj.resolutions = tilegrid.getResolutions();obj.tileSize = tilegrid.getTileSize(tilegrid.getMinZoom());return JSON.stringify(obj);}/*** @param {string} serialization .* @return {OlTilegridTileGrid} tilegrid*/deserializeTilegrid(serialization) {/*** @type {import ("ol/tilegrid/WMTS").Options}*/const options = JSON.parse(serialization);return new OlTilegridTileGrid(options);}/*** @param {OlTilegridWMTS} tilegrid .* @return {string|undefined} .*/serializeTilegridWMTS(tilegrid) {if (!tilegrid) {return undefined;}/*** @type {{* 'extent': import('ol/extent.js').Extent,* 'minZoom': number,* 'matrixIds': string[],* 'resolutions': number[],* 'origins': import('ol/coordinate.js').Coordinate[],* }}*/const obj = {};const resolutions = tilegrid.getResolutions();obj.extent = tilegrid.getExtent();obj.minZoom = tilegrid.getMinZoom();obj.matrixIds = tilegrid.getMatrixIds();obj.resolutions = resolutions;obj.origins = [];for (let z = 0; z < resolutions.length; ++z) {obj.origins.push(tilegrid.getOrigin(z));}return JSON.stringify(obj);}/*** @param {string} serialization .* @return {OlTilegridWMTS} tilegrid .*/deserializeTilegridWMTS(serialization) {/*** @type {import ("ol/tilegrid/WMTS").Options}*/const options = JSON.parse(serialization);return new OlTilegridWMTS(options);}/*** @param {OlSourceTileWMS} source .* @return {string} .*/serializeSourceTileWMS(source) {const obj = this.createBaseObject_(source);obj.params = source.getParams();obj.urls = source.getUrls();obj.tileGrid = this.serializeTilegrid(source.getTileGrid());const projection = source.getProjection();if (projection) {obj.projection = olProj.get(source.getProjection()).getCode();}return JSON.stringify(obj);}/*** @param {string} serialization .* @param {function(import("ol/ImageTile.js").default, string): void} [tileLoadFunction] .* @return {OlSourceTileWMS} source .*/deserializeSourceTileWMS(serialization, tileLoadFunction) {/*** @type {import ("ol/source/TileWMS").Options}*/const options = JSON.parse(serialization);// @ts-ignoreoptions.tileLoadFunction = tileLoadFunction;if (options.tileGrid) {options.tileGrid = this.deserializeTilegrid(/** @type {any} */ (options).tileGrid);}options.gutter = this.gutter_;return new OlSourceTileWMS(options);}/*** @param {OlSourceWMTS} source .* @return {string} .*/serializeSourceWMTS(source) {const obj = this.createBaseObject_(source);obj.dimensions = source.getDimensions();obj.format = source.getFormat();obj.urls = source.getUrls();obj.version = source.getVersion();obj.layer = source.getLayer();obj.style = source.getStyle();obj.matrixSet = source.getMatrixSet();// The OL getTileGrid method is expected to return a WMTS tilegrid so it is OK to cast here.const tileGridWMTS = /** @type {OlTilegridWMTS} */ (source.getTileGrid());obj.tileGrid = this.serializeTilegridWMTS(tileGridWMTS);obj.requestEncoding = source.getRequestEncoding();const projection = source.getProjection();if (projection) {obj.projection = olProj.get(source.getProjection()).getCode();}return JSON.stringify(obj);}/*** @param {string} serialization .* @param {function(import("ol/ImageTile.js").default, string): void} [tileLoadFunction] .* @return {OlSourceWMTS} .*/deserializeSourceWMTS(serialization, tileLoadFunction) {/*** @type {import("ol/source/WMTS").Options}*/const options = JSON.parse(serialization);// @ts-ignoreoptions.tileLoadFunction = tileLoadFunction;if (options.tileGrid) {options.tileGrid = this.deserializeTilegridWMTS(/** @type {any} */ (options).tileGrid);}return new OlSourceWMTS(options);}/*** @private* @param {number} number Some number which may be Infinity* @return {number} The same number or an arbitrary big number instead of Infinity*/makeInfinitySerializable_(number) {if (number === Infinity) {return 1000;}return number;}/*** @param {!import("ol/layer/Tile.js").default|import("ol/layer/Image").default} layer .* @param {import("ol/source/Source.js").default} [source] .* @return {string} .*/serializeTileLayer(layer, source) {const obj = this.createBaseObject_(layer);obj.opacity = layer.getOpacity();obj.visible = layer.getVisible();obj.minResolution = layer.getMinResolution();obj.maxResolution = this.makeInfinitySerializable_(layer.getMaxResolution());obj.zIndex = layer.getZIndex();source = source || layer.getSource();if (source instanceof OlSourceTileWMS) {obj.source = this.serializeSourceTileWMS(source);obj.sourceType = 'tileWMS';} else if (source instanceof OlSourceWMTS) {obj.source = this.serializeSourceWMTS(source);obj.sourceType = 'WMTS';}return JSON.stringify(obj);}/*** @param {string} serialization .* @param {function(import("ol/ImageTile.js").default, string): void} [tileLoadFunction] .* @return {!import("ol/layer/Tile.js").default} .*/deserializeTileLayer(serialization, tileLoadFunction) {/*** @type {import('ol/layer/BaseTile.js').Options}*/const options = JSON.parse(serialization);// @ts-ignoreconst sourceType = options.sourceType;if (sourceType === 'tileWMS') {options.source = this.deserializeSourceTileWMS(/** @type {any} */ (options).source, tileLoadFunction);} else if (sourceType === 'WMTS') {options.source = this.deserializeSourceWMTS(/** @type {any} */ (options).source, tileLoadFunction);}return new OlLayerTile(options);}}

- Defined in src/offline/SerializerDeserializer.js:29

### Const Service

Service: Service = class {/*** This service watches the status of network connection.** Currently it watches every $http and $.ajax requests errors, if an error* occurs we wait 2 sec then we make an http request on the checker file.* If the checker responds that means we are online, otherwise we make a* 2nd request 2 sec later, if the 2nd requests failed that means we* are offline.** A timeout of 1 sec is set for the checker file, so if we have a bad* connection, we consider we are offline.** During offline mode we test every 2 sec if we are back online.** @ngInject* @param {!jQuery} $document Angular document service.* @param {angular.IWindowService} $window Angular window service.* @param {angular.ITimeoutService} $timeout Angular timeout service.* @param {angular.IScope} $rootScope The root scope.* @param {import('ngeo/options.js').ngeoOfflineTestUrl} ngeoOfflineTestUrl URL of the test page.*/constructor($document, $window, $timeout, $rootScope, ngeoOfflineTestUrl) {/*** @private* @type {!jQuery}*/this.$document_ = $document;/*** @private* @type {!Window}*/this.$window_ = $window;/*** @private* @type {!angular.ITimeoutService}*/this.$timeout_ = $timeout;/*** @private* @type {angular.IScope}*/this.$rootScope_ = $rootScope;/*** @private* @type {import('ngeo/options.js').ngeoOfflineTestUrl}*/this.ngeoOfflineTestUrl_ = ngeoOfflineTestUrl;/*** @private* @type {!number}*/this.count_ = 0;/*** @type {!boolean|undefined}* @private*/this.offline_;/*** @private* @type {angular.IPromise<void>|undefined}*/this.promise_;this.initialize_();}initialize_() {this.offline_ = !this.$window_.navigator.onLine;// airplane mode, works offline(firefox)this.$window_.addEventListener('offline', () => {this.triggerChangeStatusEvent_(true);});// online event doesn't means we have a internet connection, that means we// have possiby one (connected to a router ...)this.$window_.addEventListener('online', () => {this.check(undefined);});// We catch every $.ajax request errors or (canceled request).// @ts-ignoreif (this.$document_.ajaxError) {/*** @param {unknown} evt* @param {unknown} jqxhr* @param {unknown} settings* @param {string} thrownError*/const onAjaxError = (evt, jqxhr, settings, thrownError) => {// Filter out canceled requestsif (!/^(canceled|abort)$/.test(thrownError)) {this.check(2000);}};// @ts-ignorethis.$document_.ajaxError(onAjaxError);}}/*** Check fir network status** @param {number} [timeout] Delay for timeout.*/check(timeout) {if (this.promise_) {this.$timeout_.cancel(this.promise_);this.promise_ = undefined;}if (timeout !== undefined) {this.count_++;this.promise_ = this.$timeout_(() => this.check(), timeout);return;}$.ajax({method: 'GET',url: this.ngeoOfflineTestUrl_,timeout: 1000,success: () => {this.count_ = 0;if (this.offline_) {this.triggerChangeStatusEvent_(false);}},error: () => {this.count_++;// We consider we are offline after 3 requests failedif (this.count_ > 2 && !this.offline_) {this.triggerChangeStatusEvent_(true);}},});}/*** @param {boolean} offline whether it's offline or not.* @private*/triggerChangeStatusEvent_(offline) {this.offline_ = offline;// this.$rootScope_.$broadcast('ngeoNetworkStatusChange', net.offline);this.$rootScope_.$digest();}/*** @return {boolean} True if we are disconnected.* @export*/isDisconnected() {return !!this.offline_;}}

- Defined in src/offline/NetworkStatus.js:25

### Const TOLERANCE

TOLERANCE: number = 10

- Defined in api/src/Querent.js:32

Click tolerance in pixel

### Const exports

exports: IModule = angular.module('ngeoOfflineModule', [ngeoOfflineComponent.name,ngeoOfflineNetworkStatus.module.name,ngeoOfflineServiceManager.module.name,downloader.module.name,restorer.module.name,mode.module.name,])

- Defined in src/offline/AbstractLocalforageWrapper.js:35
- Defined in src/offline/SerializerDeserializer.js:269
- Defined in src/offline/LocalforageCordovaWrapper.js:24
- Defined in src/offline/LocalforageAndroidWrapper.js:24
- Defined in src/offline/LocalforageIosWrapper.js:29
- Defined in src/offline/Downloader.js:203
- Defined in src/offline/NetworkStatus.js:229
- Defined in src/offline/Restorer.js:81
- Defined in src/offline/module.js:33

abstract
property

  {string} command

property

  {string[]} args

### Const extractor

extractor: RegExp = new RegExp('[^/]*//[^/]+/(.*)')

- Defined in src/offline/utils.js:39

### Const layerIdentifier

layerIdentifier: string = "layerName"

- Defined in src/format/ArcGISGeoJSON.js:44

const

### Let modifierPressed

modifierPressed: boolean

- Defined in src/interaction/MeasureLength.js:29

### Const name

name: "ngeoOfflineRestorer" = "ngeoOfflineRestorer"

- Defined in src/offline/Downloader.js:200
- Defined in src/offline/NetworkStatus.js:187
- Defined in src/offline/Restorer.js:78

## Functions

### AbstractAppController

- AbstractAppController($scope: IScope, $injector: IInjectorService, mobile: boolean): void

- - Defined in contribs/gmf/src/controllers/AbstractAppController.js:87

  Application abstract controller.

  Used functionalities:

  - `open_panel`: When set, contains the name of the panel to open upon loading an application. Note: although this is a list, only one can be defined.
  ngdoc

    controller

  nginject

  #### Parameters

  - ##### $scope: IScope

    Scope.

  - ##### $injector: IInjectorService

    Main injector.

  - ##### mobile: boolean

  #### Returns void

### DMSCoordinatesFilter

- DMSCoordinatesFilter(): dmsCoordinates

- - Defined in src/misc/filters.js:335

  Format coordinates as DMS coordinates.

  Example without parameters:

       <p>{{[7.1234, 46.9876] | ngeoDMSCoordinates}}</p>
       <!-- will Become  7° 07' 24'' E 46° 59' 15'' N-->

  Example with defined fractionDigits and a template.

       <p>{{[7.1234, 46.9876] | ngeoDMSCoordinates:2:'[{y}; {x]'}}</p>
       <!-- will Become [46° 59' 15.36'' N; 7° 07' 24.24'' E] -->

  nginject
  ngdoc

    filter

  ngname

    ngeoDMSCoordinates

  #### Returns dmsCoordinates

  A function to format numbers into a DMS coordinates string.

### DisclaimerController

- DisclaimerController($element: JQuery<HTMLElement>, $sce: ISCEService, $timeout: ITimeoutService, gettextCatalog: gettextCatalog, ngeoDisclaimer: MessageDisclaimerService, ngeoEventHelper: EventHelper, ngeoLayerHelper: LayerHelper, gmfDisclaimerOptions: gmfDisclaimerOptions): void

- - Defined in contribs/gmf/src/disclaimer/component.js:80

  Used metadata:

  - `disclaimer`: The disclaimer text for this element. For WMS and WMTS layers, layer groups and themes.
  nginject
  ngdoc

    controller

  ngname

    GmfDisclaimerController

  #### Parameters

  - ##### $element: JQuery<HTMLElement>

    Element.

  - ##### $sce: ISCEService

    Angular sce service.

  - ##### $timeout: ITimeoutService

    Angular timeout service.

  - ##### gettextCatalog: gettextCatalog

    Gettext catalog.

  - ##### ngeoDisclaimer: MessageDisclaimerService

    Ngeo Disclaimer service.

  - ##### ngeoEventHelper: EventHelper

    Ngeo Event Helper.

  - ##### ngeoLayerHelper: LayerHelper

    Ngeo Layer Helper.

  - ##### gmfDisclaimerOptions: gmfDisclaimerOptions

    The options.

  #### Returns void

### DurationFilter

- DurationFilter(gettextCatalog: gettextCatalog): duration

- - Defined in src/misc/filters.js:465

  A filter used to format a time duration in seconds into a more readable form. Only the two largest units will be shown.

  Examples: {{42 | ngeoDuration}} => 42 seconds {{132 | ngeoDuration}} => 2 minutes 12 seconds {{3910 | ngeoDuration}} => 1 hour 5 minutes -> Note: the remaining 10 seconds will be dropped

  nginject
  ngdoc

    filter

  ngname

    ngeoDuration

  #### Parameters

  - ##### gettextCatalog: gettextCatalog

    Gettext catalog.

  #### Returns duration

  Function used to format a time duration in seconds into a string.

### EditingSnappingService

- EditingSnappingService($http: IHttpService, $q: IQService, $rootScope: IScope, $injector: IInjectorService, $timeout: ITimeoutService, gmfDatasourceFileGroup: DatasourceFileGroup, gmfSnappingConfig: GmfSnappingConfig, gmfThemes: ThemesService, gmfTreeManager: LayertreeTreeManager, ngeoFeatures: Collection<Feature<Geometry>>): void

- - Defined in contribs/gmf/src/editing/Snapping.js:80

  The snapping service of GMF. Responsible of collecting the treeCtrls that support snapping and store them here. As soon as a treeCtrl state becomes 'on', a WFS GetFeature request is issued to collect the features at the map view location. A new request is sent every time the map is panned or zoomed for each treeCtrl that are still 'on'.

  Features returned by these requests get bound to a `ol.interaction.Snap`, which allows the snapping to occur on other places where vector features are drawn or modified.

  nginject
  ngdoc

    service

  ngname

    gmfSnapping

  #### Parameters

  - ##### $http: IHttpService

    Angular $http service.

  - ##### $q: IQService

    The Angular $q service.

  - ##### $rootScope: IScope

    Angular rootScope.

  - ##### $injector: IInjectorService

    Angular injector.

  - ##### $timeout: ITimeoutService

    Angular timeout service.

  - ##### gmfDatasourceFileGroup: DatasourceFileGroup

    Group that contains file data sources.

  - ##### gmfSnappingConfig: GmfSnappingConfig

    Snapping configuration options for the features in the Draw tool and in the "Layer Import / Local" tool.

  - ##### gmfThemes: ThemesService

    The gmf Themes service.

  - ##### gmfTreeManager: LayertreeTreeManager

    The gmf TreeManager service.

  - ##### ngeoFeatures: Collection<Feature<Geometry>>

    Collection of features.

  #### Returns void

### NumberCoordinatesFilter

- NumberCoordinatesFilter($filter: IFilterService): numberCoordinates

- - Defined in src/misc/filters.js:292

  Format a couple of numbers as number coordinates.

  Example without parameters:

       <p>{{[7.1234, 46.9876] | ngeoNumberCoordinates}}</p>
       <!-- will Become 7 47 -->

  Example with defined fractionDigits and template (en-US localization):

       <!-- With en-US localization -->
       <p>{{[7.1234, 46.9876] | ngeoNumberCoordinates:2:'co {x} E; {y} N'}}</p>
       <!-- will Become co 7.12 E; 46.99 N -->
       <br/>
       <!-- With en-US localization -->
       <p>{{[2600000, 1600000] | ngeoNumberCoordinates:0:'{x}, {y}'}}</p>
       <!-- will Become 2,600,000, 1,600,000 -->
       <br/>
       <!-- With fr-CH localization -->
       <p>{{[2600000, 1600000] | ngeoNumberCoordinates:0:'{x}, {y}'}}</p>
       <!-- will Become 2'600'000, 1'600'000 -->

  nginject
  ngdoc

    filter

  ngname

    ngeoNumberCoordinates

  #### Parameters

  - ##### $filter: IFilterService

    Angular filter

  #### Returns numberCoordinates

  A function to format numbers into coordinates string.

### NumberFilter

- NumberFilter($locale: ILocaleService): formatNumber

- - Defined in src/misc/filters.js:140

  A filter used to format a number with a precision, using the locale.

  Arguments:

  - opt_precision: The used precision, default is 3.

  Examples:

       {{0.1234 | ngeoNumber}} => 0.123
       {{1.234 | ngeoNumber}} => 1.23
       {{12.34 | ngeoNumber}} => 12.3
       {{123.4 | ngeoNumber}} => 123
       {{1234 | ngeoNumber}} => 1230

  nginject
  ngdoc

    filter

  ngname

    ngeoNumber

  #### Parameters

  - ##### $locale: ILocaleService

    Angular locale

  #### Returns formatNumber

  Function used to format number into a string.

### PermalinkService

- PermalinkService($q: IQService, $timeout: ITimeoutService, $rootScope: IScope, $injector: IInjectorService, ngeoDebounce: miscDebounce<{}>, gettextCatalog: gettextCatalog, ngeoEventHelper: EventHelper, ngeoStateManager: StatemanagerService, ngeoLocation: StatemanagerLocation, gmfLayerBeingSwipe: LayerBeingSwipe, gmfPermalinkOptions: gmfPermalinkOptions, gmfDataSourcesManager: DatasourceManager, ngeoWMSTime: WMSTime): void

- - Defined in contribs/gmf/src/permalink/Permalink.js:285

  The Permalink service for GMF, which uses the `ngeo.statemanager.Service` to manage the GMF application state. Here's the list of states are are managed:

  - the map center and zoom level
  - the current background layer selected
  - whether to add a crosshair feature in the map or not
  - the dimensions value

  For time layers the time range or time value is added

  It can also be used to add different types of things in the map, such as features, external data sources, etc.

  This is made using parameters in the url, which can be static (i.e. parameters that always have the same name) or dynamic (i.e. parameters that have a static prefix but with a full name being dynamic).

  Here's a complete list of possible parameters and what they do. But first, a legend

  === Parameters [type] ===

  - `[paramameter_name]` (type) [parameter documentation]

  === Parameters (static) ===

  A static parameter always have the same name.

  - `baselayer_ref` - "string" The name of the base layer that should be set visible as default in the map. If none is set, then the default one in the loaded theme is set instead.

  - `eds_n` (string), `eds_u` (string) These parameters stand for:

    - eds_n: "External Data Sources Names"
    - eds_u: "External Data Sources URLs" These parameters define external WMS/WMTS data sources to add to the map upon initialization. Both values are comma-separated lists, `eds_u` containing the urls to the services and `eds_n` the layer names (separated by `;`). Here's an example: &eds_n=a;b;c,d,e&eds_u=host1.com,host2.com,host3.com, which reads as:
    - host1.com - layers: a, b and c
    - host2.com - layers: d
    - host3.com - layers: e For these parameters to work properly, they must define the same number of elements, i.e. same number of names and urls.

  - `map_crosshair` (boolean) If this parameter set to `true`, then a crosshair marker will be added to the center of the map upon initialization. The marker will stay at this location.

  - `map_tooltip` (string) If set, then the text defined in this parameter will be added as a tooltip at center of the map upon initialization.

  - `map_x` (number), `map_y` (number) These two parameters define a coordinate the map view should be centered to upon initialization. The value must be in the map view projection.

  - `map_zoom` (number) Defines the zoom level the map view should be zoomed to upon initialitation.

  - `rl_features` (string) This parameter defines vector features to add to the map upon initializaton. In addition, if the application includes the draw tool, the features added can be modified. The draw tool can also be used to add new features, which are automatically added in the url.

  - `tree_groups` (string) Defines the layer groups that should be added to the layer tree upon application initialization as a comma-separated list. For example: Layers,Filters,Externals

  - `wfs_layer` (string) If set, this parameter defines the name of a layer that supports WFS to use to fetch features and add them to the map upon initialization. The dynamic parameter `wfs_[]` is required to identify the features to fetch.

  - `wfs_ngroups` (number) If set, then `wfs_layer` represents the name of a group and this property defines how many layers are in it. Requires `wfs_layer` to be set.

  - `wfs_show_features` (boolean) If set to `false` or `0`, then the features returned by the `wfs_layer` parameter will not be shown in the map.

  === Parameters (dynamic) ===

  Dynamic parameters have variable names, which is always composed of:

  - a static prefix
  - a variable suffix

  The same dynamic parameter can be set multiple times, with different suffix values as name.

  For example: `&wfs_a=&wfs_b=`.

  - `wfs_` is the static prefix
  - the name used as reference for this dynamic parameter is `wfs_[]`
  - therefore, this example has 2 `wfs_[]` parameters set, with `a` and `b` being the variable suffix

  - `dim_[]` (string) Variable suffix: the name of a dimension Value: * Defines the value of a specific dimension to set upon loading the application. For example: `&dim_time=2019-01-25T14:45:51.986Z`. WMS data sources that support the dimension set will be initialized with its value.

  - `tree_enable_[]` (boolean) Variable suffix: the name of a layer group Value: whether the group should be enabled or not in the layer tree For example: `&tree_enable_polygon=true&tree_enable_point=false` means that the group `polygon` will be enabled in the layer tree, but not `point`.

  - `tree_group_layers_[]` (string) Variable suffix: the name of a layer group Value: a comma-separated list of layers within the group that should be enabled upon initialization. For example: `&tree_group_layers_polygon=forest,lake` means that only the layers `forest` and `lake` within the group `polygon` would be enabled upon initialization.

  - `tree_opacity_[]` (number) Variable suffix: the name of a layer group Value: Number between 0 (transparent) and 1 (opaque) Defines the opacity of a layer group upon initialization.

  - `tree_time_[]` (date) Variable suffix: the name of a layer group or layer Value: a date or date interval with the resolution of the time of the layer or group Defines the time or time interval for a time layer or a group.

  - `wfs_[]` (string) Variable suffix: the name of an attribute Value: A comma-separated list of values for the attribute This parameter requires `wfs_layer` in order to work properly. If set, it defines the filters to build to fetch the features to add to the map. For example: `&wfs_layer=fuel&wfs_osm_id=1420918679,441134960` the layer `fuel` will be fetched features with the attribute `osm_id` equal to `1420918679` or `441134960`. If `wfs_ngroups` is set, then an index is added to after the prefix of the `wfs_[]` parameter, for example: `wfs_ngroups=2&wfs_0_[]=&wfs_1_[]=`

  === More documentation ===

  To have the whole possibilities offer by the permalink, these services should be instantiated: ngeoBackgroundLayerMgr, ngeoFeatureOverlayMgr, ngeoFeatureHelper, gmfPermalinkOptions, gmfThemes, gmfObjectEditingManager, gmfThemeManager, defaultTheme, gmfTreeManager, ngeoWfsPermalink, ngeoAutoProjection and ngeoFeatures.

  Used functionalities:

  - `default_theme`: Theme to use by default.
  nginject
  ngdoc

    service

  ngname

    gmfPermalink

  #### Parameters

  - ##### $q: IQService

    The Angular $q service.

  - ##### $timeout: ITimeoutService

    Angular timeout service.

  - ##### $rootScope: IScope

    Angular rootScope.

  - ##### $injector: IInjectorService

    Main injector.

  - ##### ngeoDebounce: miscDebounce<{}>

    ngeo Debounce factory.

  - ##### gettextCatalog: gettextCatalog

    Gettext service.

  - ##### ngeoEventHelper: EventHelper

    Ngeo event helper service

  - ##### ngeoStateManager: StatemanagerService

    The ngeo statemanager service.

  - ##### ngeoLocation: StatemanagerLocation

    ngeo location service.

  - ##### gmfLayerBeingSwipe: LayerBeingSwipe

  - ##### gmfPermalinkOptions: gmfPermalinkOptions

    The options.

  - ##### gmfDataSourcesManager: DatasourceManager

    The gmf datasourcemanager service.

  - ##### ngeoWMSTime: WMSTime

    The ngeo wmstime service

  #### Returns void

### ScalifyFilter

- ScalifyFilter($filter: IFilterService): {}

- - Defined in src/misc/filters.js:100

  Format a number as a localized scale. For instance:

  - For 'fr-CH' the value 25000 will become '1 : 25 000'.
  - For 'en-US' the value 25000 will become '1 : 25,000'.

  Example:

       <p>{{25000 | ngeoScalify}}</p>

  nginject
  ngdoc

    filter

  ngname

    ngeoScalify

  #### Parameters

  - ##### $filter: IFilterService

    Angular filter

  #### Returns {}

  A function to format number into a 'scale' string.

### UnitPrefixFilter

- UnitPrefixFilter($filter: IFilterService): unitPrefix

- - Defined in src/misc/filters.js:222

  A filter used to format a number with the prefix and unit

  Arguments:

  - opt_unit: The unit to used, default is ''.
  - opt_type: (unit|square|binary) the type of units, default is 'unit'.
  - opt_precision: The used precision, default is 3.

  Examples:

       {{25000 | ngeoUnitPrefix}} => 25 k
       {{25000 | ngeoUnitPrefix:'m'}} => 25 km
       {{25000000 | ngeoUnitPrefix:'m²':'square'}} => 25 km²
       {{2048 | ngeoUnitPrefix:'o':'binary'}} => 2 Kio

  nginject
  ngdoc

    filter

  ngname

    ngeoUnitPrefix

  #### Parameters

  - ##### $filter: IFilterService

    Angular filter

  #### Returns unitPrefix

  Function used to format number into a string.

### WfsPermalinkService

- WfsPermalinkService($http: IHttpService, ngeoPermalinkOgcserverUrl: string, ngeoQueryResult: QueryResult, ngeoWfsPermalinkOptions: ngeoWfsPermalinkOptions): void

- - Defined in src/statemanager/WfsPermalink.js:116

  WFS permalink service that can be used to load features with a WFS GetFeature request given query parameters.

  Resulting features are then highlighted and the map is zoomed to the nearest map extent.

  Configuration:

  ngeoWfsPermalinkOptions: wfsTypes: - featureType: label: - ...

  Parameters:

  - `wfs_layer` tells what layer will be queried
  - `wfs_showFeatures` (boolean) tells if the features should be highlighted and listed (when true) or if the map should only be recentered on the features (when false). Default is true.
  - other parameters will be considered as WFS attribute/values filters and must be of the form: `wfs_<layer attribute name>=<a comma-separated list of values>`

  Example: http://example.com?wfs_layer=parcels&wfs_city=Oslo&wfs_number=12,34,56 will load parcels #12, 34 and 56 of the city of Oslo.

  It is possible to define several groups of filtering parameters by:

  - adding a `wfs_ngroups` parameter telling how many groups are defined
  - prefixing all filtering parameters by the number of each group, starting at 0. For instance `wfs_0_<layer attribute name>`

  Example: http://example.com?wfs_layer=parcels&wfs_ngroups=2&wfs_0_city=Oslo&wfs_0_number=12,34,56&wfs_1_city=Paris&wfs_1_number=78,90 will load parcels #12, 34 and 56 of the city of Oslo as well as parcels #78 and 90 of the city of Paris.

  ngdoc

    service

  ngname

    ngeoWfsPermalink

  nginject

  #### Parameters

  - ##### $http: IHttpService

    Angular $http service.

  - ##### ngeoPermalinkOgcserverUrl: string

    URL to the WFS server

  - ##### ngeoQueryResult: QueryResult

    The ngeo query result service.

  - ##### ngeoWfsPermalinkOptions: ngeoWfsPermalinkOptions

    The options to configure the ngeo wfs permalink service with.

  #### Returns void

### augmentBreadcrumb

- augmentBreadcrumb(breadcrumb: Breadcrumb, hint: BreadcrumbHint): void

- - Defined in contribs/gmf/src/controllers/AbstractAppController.js:730

  #### Parameters

  - ##### breadcrumb: Breadcrumb

  - ##### hint: BreadcrumbHint

  #### Returns void

### blobToDataUrl

- blobToDataUrl(blob: Blob): Promise<string>

- - Defined in src/offline/TilesDownloader.js:26

  #### Parameters

  - ##### blob: Blob

    A blob

  #### Returns Promise<string>

  data URL

### buildStyle

- buildStyle(styleDescriptor: StyleLike): StyleLike

- - Defined in src/options.js:89

  #### Parameters

  - ##### styleDescriptor: StyleLike

    The description of the style

  #### Returns StyleLike

### buttonComponent

- buttonComponent($parse: IParseService): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/misc/btnComponent.js:166

  The ngeo-btn allows creating toggle buttons working with ng-model. It is typically used with Bootstrap buttons (`btn`).

  Example:

      <button ngeo-btn class="btn" ng-model="ctrl.interaction.active"></button>

  This example is about creating a Bootstrap button that can pressed/depressed to activate/deactivate an OpenLayers interaction.

  htmlattribute

    {*} ng-model Any property on the scope. Ideally a boolean.

  nginject
  ngdoc

    directive

  ngname

    ngeoBtn

  #### Parameters

  - ##### $parse: IParseService

    Angular parse service.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### buttonGroupComponent

- buttonGroupComponent($parse: IParseService): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/misc/btnComponent.js:63

  Provides two directives: ngeo-btn-group and ngeo-btn.

  The ngeo-btn-group directive allows creating "toggle" groups. It works with the ngeo-btn directive.

  Example:

      <div ngeo-btn-group>
        <button ngeo-btn class="btn" ng-model="ctrl.drawPoint.active"></button>
        <button ngeo-btn class="btn" ng-model="ctrl.drawLine.active"></button>
      </div>

  In that example the ngeo-btn are combined together in a "toggle group", where activating a button will deactivate the others.

  One can use `ng-model` directive at the group level in order to know if a button is active.

  Example:

      <div ngeo-btn-group ngeo-btn-group-active="ctrl.drawToolActive">

  See our live example: ../examples/interactionbtngroup.html

  htmlattribute

    {*} ngeo-btn-group-active Any property of the scope. Tells whether at least one button of the group is active.

  nginject
  ngdoc

    directive

  ngname

    ngeoBtnGroup

  #### Parameters

  - ##### $parse: IParseService

    Angular parse service.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### colorPickerComponent

- colorPickerComponent(ngeoColorpickerTemplateUrl: string | {}): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/misc/colorpickerComponent.js:71

  Provides the "ngeoColorpicker" directive, a widget for selecting a color among predefined ones.

  Example:

      <div ngeo-colorpicker="ctrl.colors">
      </div>

  nginject
  ngdoc

    directive

  ngname

    ngeoColorpicker

  #### Parameters

  - ##### ngeoColorpickerTemplateUrl: string | {}

        Template URL for the directive.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### contextualDataComponent

- contextualDataComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/contextualdata/component.js:71

  Provide a directive responsible of displaying contextual data after a right click or a long press on the map.

  This directive doesn't require being rendered in a visible DOM element. It's usually added to the element where the map directive is also added.

  Example:

      <gmf-map gmf-map-map="mainCtrl.map"
          gmf-contextualdata
          gmf-contextualdata-map="::mainCtrl.map">

  The content of the popover is managed in a partial that must be defined using the `gmfContextualdatacontentTemplateUrl` value. See {@link import("gmf/contextualdatacontentDirective.js").default} for more details.

  One can also provide a `gmf-contextualdata-callback` attribute in order to do some additional computing on the coordinate or the values received for the raster service. The callback function is called with the coordinate of the clicked point and the response data from the server. It is intended to return an object of additional properties to add to the scope.

  See the ../examples/contribs/gmf/contextualdata.html example for a usage sample.

  htmlattribute

    {import("ol/Map.js").default} map The map.

  htmlattribute

    {Function} callback A function called after server (raster) data is received in case some additional computing is required. Optional.

  ngdoc

    directive

  ngname

    gmfContextualdata

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### contextualDataComponentContent

- contextualDataComponentContent(gmfContextualdatacontentTemplateUrl: string): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/contextualdata/component.js:393

  Provide a directive responsible of formatting the content of the popover for the contextual data directive.

  Its main purpose is to configure the template to be used. Integrators should ensure that the template values match the configuration of the contextual data directive.

  For each projection the following expressions can be used (replace xxxx by the relevant projection code:

  - {{coord_xxxx}},
  - {{coord_xxxx_eastern}},
  - {{coord_xxxx_northern}}

  Tip: one should use the `ngeoNumberCoordinates` and `ngeoDMSCoordinates`.

  The raster service is requested to query additional information. The integrators can also use `{{xxxx}}` where `xxxx` will be replaced by the name of the raster layers (for example 'srtm').

  See the ../examples/contribs/gmf/contextualdata.html example for a usage sample.

  nginject
  ngdoc

    directive

  ngname

    gmfContextualdatacontent

  #### Parameters

  - ##### gmfContextualdatacontentTemplateUrl: string

    URL to template.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### controlComponent

- controlComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/misc/controlComponent.js:52

  Provides a directive that can be used to add a control to the map using a DOM element.

  Example:

      <div ngeo-control="ctrl.control" ngeo-control-map="ctrl.map"></div>

  The expression passed to "ngeo-control" should evaluate to a control instance, and the expression passed to "ngeo-control-map" should evaluate to a map instance.

  See our live example: ../examples/control.html

  htmlattribute

    {import("ol/Map.js").default} ngeo-control-map The map.

  nginject
  ngdoc

    directive

  ngname

    ngeoControl

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### dateBetween

- dateBetween(propertyName: string, lowerBoundary: string, upperBoundary: string): DateIsBetween

- - Defined in src/format/filter.js:62

  Creates a `<PropertyIsBetween>` comparison operator to test whether a property value lies within a time range given by a lower and upper bound (inclusive).

  #### Parameters

  - ##### propertyName: string

    Name of the context property to compare.

  - ##### lowerBoundary: string

    The lower bound of the range.

  - ##### upperBoundary: string

    The upper bound of the range.

  #### Returns DateIsBetween

  `<PropertyIsBetween>` operator.

### datePickerComponent

- datePickerComponent(ngeoDatePickerTemplateUrl: string | {}, $timeout: ITimeoutService): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/misc/datepickerComponent.js:76

  Provide a directive to select a single date or a range of dates. Requires jQuery UI for the 'datepicker' widget.

  nginject
  ngdoc

    directive

  ngname

    ngeoDatePicker

  #### Parameters

  - ##### ngeoDatePickerTemplateUrl: string | {}

    Template for the directive.

  - ##### $timeout: ITimeoutService

    angular timeout service

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### dateTimeComponent

- dateTimeComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/misc/datetimepickerComponent.js:47

  A directive used to display a date or time picker

  Example:

       <input ngeo-datetimepicker
           ngeo-datetimepicker-options="{timepicker: false}"

  htmlattribute

    {Object} ngeo-datetimepicker-options The options.

  ngdoc

    directive

  ngname

    ngeoDatetimepicker

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### dpi

- dpi(): number

- - Defined in src/utils.js:231

  Return the screen DPI.

  #### Returns number

  The screen DPI.

### dragPanCondition

- dragPanCondition(event: MapBrowserEvent<MouseEvent>): boolean

- - Defined in contribs/gmf/src/controllers/AbstractAppController.js:618

  Allow map pan with all buttons except right click (context menu)

  #### Parameters

  - ##### event: MapBrowserEvent<MouseEvent>

    MapBrowser event

  #### Returns boolean

### drawComponent

- drawComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/draw/component.js:123

  Directive used to draw vector features on a map. Example:

      <ngeo-drawfeature
          ngeo-btn-group
          class="btn-group"
          ngeo-drawfeature-active="ctrl.drawActive"
          ngeo-drawfeature-map="::ctrl.map">
        <a
          href
          translate
          ngeo-btn
          ngeo-drawpoint
          class="btn btn-default ngeo-drawfeature-point"
          ng-class="{active: dfCtrl.drawPoint.active}"
          ng-model="dfCtrl.drawPoint.active"></a>
        <a
          href
          translate
          ngeo-btn
          ngeo-measurelength
          class="btn btn-default ngeo-drawfeature-linestring"
          ng-class="{active: dfCtrl.measureLength.active}"
          ng-model="dfCtrl.measureLength.active"></a>
        <a
          href
          translate
          ngeo-btn
          ngeo-measurearea
          class="btn btn-default ngeo-drawfeature-polygon"
          ng-class="{active: dfCtrl.measureArea.active}"
          ng-model="dfCtrl.measureArea.active"></a>
        <a
          href
          translate
          ngeo-btn
          ngeo-measureazimut
          class="btn btn-default ngeo-drawfeature-circle"
          ng-class="{active: dfCtrl.measureAzimut.active}"
          ng-model="dfCtrl.measureAzimut.active"></a>
        <a
          href
          translate
          ngeo-btn
          ngeo-drawrectangle
          class="btn btn-default ngeo-drawfeature-rectangle"
          ng-class="{active: dfCtrl.drawRectangle.active}"
          ng-model="dfCtrl.drawRectangle.active"></a>
        <a
          href
          translate
          ngeo-btn
          ngeo-drawtext
          class="btn btn-default ngeo-drawfeature-text"
          ng-class="{active: dfCtrl.drawText.active}"
          ng-model="dfCtrl.drawText.active"></a>
      </ngeo-drawfeature>

  htmlattribute

    {boolean} ngeo-drawfeature-active Whether the directive is active or not.

  htmlattribute

    {import("ol/Collection.js").default} [ngeo]-drawfeature-features The features collection in which to push the drawn features. If none is provided, then the `ngeoFeatures` collection is used.

  htmlattribute

    {import("ol/Map.js").default} ngeo-drawfeature-map The map.

  htmlattribute

    {boolean} ngeo-drawfeature-showmeasure. Checks the checkbox in order to display the feature measurements as a label. Default to false.

  htmlattribute

    {string} [ngeo]-drawfeature-uid A prefix to use to create unique ids for each created draw interaction as property. Used to find those draw interactions later on from the map, using the property set.

  nginject
  ngdoc

    directive

  ngname

    ngeoDrawfeature

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### drawPointComponent

- drawPointComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/draw/point.js:39
  nginject
  ngdoc

    directive

  ngname

    ngeoDrawpoint

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### drawRectangleComponent

- drawRectangleComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/draw/rectangle.js:40
  nginject
  ngdoc

    directive

  ngname

    ngeoDrawrectangle

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### drawTextComponent

- drawTextComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/draw/text.js:39
  nginject
  ngdoc

    directive

  ngname

    ngeoDrawtext

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### drawinfDrawFeatureComponent

- drawinfDrawFeatureComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/drawing/drawFeatureComponent.js:98

  Directive used to create, modify and delete vector features on a map with the addition of changing their style. Example:

      <gmf-drawfeature
          gmf-drawfeature-active="ctrl.drawFeatureActive"
          gmf-drawfeature-map="::ctrl.map">
      </gmf-drawfeature>

  htmlattribute

    {boolean} gmf-drawfeature-active Whether the directive is active or not.

  htmlattribute

    {import("ol/Map.js").default} gmf-drawfeature-map The map.

  nginject
  ngdoc

    directive

  ngname

    gmfDrawfeature

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### drawingDrawFeatureComponent

- drawingDrawFeatureComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/drawing/featureStyleComponent.js:66

  Directive used to set the style of a vector feature. The options depend on the type of geometry. Example:

      <gmf-featurestyle
          gmf-featurestyle-feature="ctrl.selectedFeature">
      </gmf-featurestyle>

  htmlattribute

    {import("ol/Feature.js").default<import("ol/geom/Geometry.js").default>} gmf-featurestyle-feature The feature.

  nginject
  ngdoc

    directive

  ngname

    gmfFeaturestyle

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### editingCreateFeatureComponent

- editingCreateFeatureComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/editing/createfeatureComponent.js:80

  A directive used to draw vector features of a single geometry type using either a 'draw' or 'measure' interaction. Once a feature is finished being drawn, it is added to a collection of features.

  The geometry types supported are:

  - Point
  - LineString
  - Polygon

  Example:

      <a
        href
        translate
        ngeo-btn
        ngeo-createfeature
        ngeo-createfeature-active="ctrl.createPointActive"
        ngeo-createfeature-features="ctrl.features"
        ngeo-createfeature-geom-type="ctrl.pointGeomType"
        ngeo-createfeature-map="::ctrl.map"
        class="btn btn-default ngeo-createfeature-point"
        ng-class="{active: ctrl.createPointActive}"
        ng-model="ctrl.createPointActive">
      </a>

  htmlattribute

    {boolean} ngeo-createfeature-active Whether the directive is active or not.

  htmlattribute

    {import("ol/Collection.js").default} ngeo-createfeature-features The collection of features where to add those created by this directive.

  htmlattribute

    {string} ngeo-createfeature-geom-type Determines the type of geometry this directive should draw.

  htmlattribute

    {import("ol/Map.js").default} ngeo-createfeature-map The map.

  ngdoc

    directive

  ngname

    ngeoCreatefeature

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### editingCreateRegularPolygonFromClickComponent

- editingCreateRegularPolygonFromClickComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/editing/createregularpolygonfromclickComponent.js:78

  A directive used to draw vector features of a single geometry type using either a 'draw' or 'measure' interaction. Once a feature is finished being drawn, it is added to a collection of features.

  The geometry types supported are:

  - Point
  - LineString
  - Polygon

  Example:

      <a
        href
        translate
        ngeo-btn
        ngeo-createregularpolygonfromclick
        ngeo-createregularpolygonfromclick-active="ctrl.active"
        ngeo-createregularpolygonfromclick-angle="::ctrl.angle"
        ngeo-createregularpolygonfromclick-features="ctrl.features"
        ngeo-createregularpolygonfromclick-map="::ctrl.map"
        ngeo-createregularpolygonfromclick-radius="::ctrl.radius"
        ngeo-createregularpolygonfromclick-sides="::ctrl.sides"
        class="btn btn-default ngeo-createregularpolygonfromclick"
        ng-class="{active: ctrl.active}"
        ng-model="ctrl.active">
      </a>

  htmlattribute

    {boolean} ngeo-createregularpolygonfromclick-active Whether the directive is active or not.

  htmlattribute

    {number|undefined} ngeo-createregularpolygonfromclick-angle Angle in radians. A value of 0 will have one of the shape's point facing up. Default value is 0.

  htmlattribute

    {import("ol/Collection.js").default} ngeo-createregularpolygonfromclick-features The collection of features where to add those created by this directive.

  htmlattribute

    {import("ol/Map.js").default} ngeo-createregularpolygonfromclick-map The map.

  htmlattribute

    {number} ngeo-createregularpolygonfromclick-radius Radius size in map units.

  htmlattribute

    {number|undefined} ngeo-createregularpolygonfromclick-sides The number of sides for the regular polygon. Default value is 3.

  ngdoc

    directive

  ngname

    ngeoCreateregularpolygonfromclick

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### editingEditFeatureComponent

- editingEditFeatureComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/editing/editFeatureComponent.js:189

  Directive used to insert, modify and delete features from a single layer. It allows you to modify the geometry of the feature in addition to its attributes.

  In order to modify or delete a feature, you must click on the map at the location of the feature to select it first.

  In order to create a new feature, you use the "Draw" button and digitize the feature on the map.

  If no layers are editable the component will be hidden.

  Used metadata:

  - `enumeratedAttributes`: List of attribute names which have enumerated attribute values (for filters purpose). For WMS layers.
  - `snappingConfig`: The snapping configuration for the leaf. If set, the leaf's layer is considered to be "snappable", even if the config itself is empty. Example value: {'tolerance': 50, 'edge': false} For WMS layers.

  Example:

      <gmf-editfeature
          gmf-editfeature-dirty="ctrl.dirty"
          gmf-editfeature-editabletreectrl="::ctrl.treeCtrl"
          gmf-editfeature-map="::ctrl.map"
          gmf-editfeature-state="efsCtrl.state"
          gmf-editfeature-vector="::ctrl.vectorLayer">
      </gmf-editfeature>

  htmlattribute

    {boolean} gmf-editfeature-dirty Flag that is toggled as soon as the feature changes, i.e. if any of its properties change, which includes the geometry.

  htmlattribute

    {import("ngeo/layertree/Controller.js").LayertreeController} gmf-editfeature-editabletreectrl A reference to the editable Layertree controller, which contains a a reference to the node and WMS layer.

  htmlattribute

    {import("ol/Map.js").default} gmf-editfeature-map The map.

  htmlattribute

    {string} gmf-editfeature-state The state property shared with the `gmf-editfeatureselector` directive. For more info, see in that directive.

  htmlattribute

    {import("ol/layer/Vector.js").default} gmf-editfeature-vector The vector layer in which to draw the vector features.

  ngdoc

    directive

  ngname

    gmfEditfeature

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### editingExportFeaturesComponent

- editingExportFeaturesComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/editing/exportfeaturesComponent.js:56

  Directive used to export vector features in different types of format. To configure which formats to use, define the `ngeoExportFeatureFormats` value, as such:

      app.module.value('ngeoExportFeatureFormats', [
          ngeo.misc.FeatureHelper.FormatType.KML,
          ngeo.misc.FeatureHelper.FormatType.GPX
      ]);

  Example:

      <button
        ngeo-exportfeatures
        ngeo-exportfeatures-features="ctrl.features"
        class="btn btn-link">Export</button>

  htmlattribute

    {import("ol/Collection.js").default<import('ol/Feature.js').default<import("ol/geom/Geometry.js").default>>} ngeo-exportfeatures-features The features to export

  nginject
  ngdoc

    directive

  ngname

    ngeoExportfeatures

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### extentToRectangle

- extentToRectangle(extent: Extent): Coordinate[]

- - Defined in src/utils.js:216

  Takes an import("ol/extent.js").Extent and return an Array of ol.Coordinate representing a rectangle polygon.

  #### Parameters

  - ##### extent: Extent

    The extent.

  #### Returns Coordinate[]

  The Array of coordinate of the rectangle.

### Const fileDrop

- fileDrop(gmfExternalDataSourcesManager: ExternalDatSourcesManager, ngeoNotification: MessageNotification, gettextCatalog: gettextCatalog): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/dropfile/component.js:52

  This function handles drag and drop on the element. It is used on the map

  Displays a 'drop here' div on dragover/dragenter and removes it on dragleave/drop On drop the file is added to the external datasources if it is valid Otherwise an alert message is shown This function is enabled for desktop only in AbstractDesktopController.js with

      module.value('gmfFileDropEnabled', true);

  nginject
  ngdoc

    directive

  ngname

    gmfFileDropZone

  #### Parameters

  - ##### gmfExternalDataSourcesManager: ExternalDatSourcesManager

    The manager of external datasources.

  - ##### ngeoNotification: MessageNotification

    Ngeo notification

  - ##### gettextCatalog: gettextCatalog

    Gettext catalog.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### geolocationComponent

- geolocationComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/geolocation/component.js:73

  Provide a geolocation directive.

  Example:

       <button ngeo-geolocation
         ngeo-geolocation-map="ctrl.map">
       </button>

  See our live example: ../examples/mobilegeolocation.html

  htmlattribute

    {import("ol/Map.js").default} ngeo-geolocation-map The map.

  htmlattribute

    {GeolocationDirectiveOptions} ngeo-geolocation-options The options.

  nginject
  ngdoc

    directive

  ngname

    ngeoGeolocation

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### getBrowserLanguage

- getBrowserLanguage(availableLanguages: string[]): string

- - Defined in src/utils.js:79

  #### Parameters

  - ##### availableLanguages: string[]

    Available languages.

  #### Returns string

  The "best" language code.

### gmfLayertreeComponent

- gmfLayertreeComponent(ngeoLayertreeTemplateUrl: string | {}): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/layertree/component.js:144

  Provides the "ngeoLayertree" directive, a directive for creating layer trees in application.

  The directive assumes that tree nodes that are not leaves have a "children" property referencing an array of child nodes.

  Example:

       <div ngeo-layertree="ctrl.tree"
         ngeo-layertree-map="ctrl.map"
         ngeo-layertree-nodelayer="ctrl.getLayer(node)"
         ngeo-layertree-listeners="ctrl.listeners(treeScope, treeCtrl)">
       </div>

  The "ngeo-layertree", "ngeo-layertree-map" and "ngeo-layertree-nodelayer" attributes are mandatory attributes.

  - "ngeo-layertree" specifies an expression providing the tree. The directive watches that expression, making it possible to retrieve the tree data through Ajax.

  - "ngeo-layertree-map" specifies an expression providing the OpenLayers map. The directive doesn't watch that expression.

  - The "ngeo-layertree-nodelayer" specifies an expression providing the layer for a given node. In most cases that expression will be function call with "node" as the argument to the function call. E.g. "ngeo-layertree-nodelayer="ctrl.getLayer(node)".

  - The "ngeo-layertree-listeners" specifies an expression providing a function to bind scope events to customs functions. You'll must set the listener on the "treeScope" and probably use "treeCtrl" as context. E.g. "ngeo-layertree-listeners="ctrl.listeners(treeScope, treeCtrl)".

  The directive comes with a default template. That template assumes that tree nodes that are not leaves have a "children" property referencing an array of child nodes. It also assumes that nodes have a "name" property.

  By default the directive uses "layertree.html" as its templateUrl. This can be changed by redefining the "ngeoLayertreeTemplateUrl" value (using app.module.value('ngeoLayertreeTemplateUrl', 'path/layertree.html'), or by adding an "ngeo-layertree-templateurl" attribute to the element.

  Example:

       <div ngeo-layertree="ctrl.tree"
         ngeo-layertree-templateurl="path/to/layertree.html"
         ngeo-layertree-map="ctrl.map"
         ngeo-layertree-nodelayer="ctrl.getLayer(node)"
         ngeo-layertree-listeners="ctrl.listeners(treeScope, treeCtrl)"
       </div>

  The directive has its own scope, but it is not an isolate scope. That scope has a "layertreeCtrl" property which is a reference to the directive's controller: "layertreeCtrl". You can refer to that property in a custom template for example.

  See our live example: ../examples/layertree.html

  htmlattribute

    {Object} ngeo-layertree One theme (JSON).

  htmlattribute

    {string} ngeo-layertree-templateurl The template URL.

  htmlattribute

    {import("ol/Map.js").default} ngeo-layertree-map The map.

  htmlattribute

    {string} ngeo-layertree-nodelayer Expression that will be parsed to be a {@link Function} that return a {@link import("ol/layer/Layer.js").default} with the argument: { 'node': {@link Object}|undefined, 'depth': {@link number} }

  htmlattribute

    {string} ngeo-layertree-nodelayerexpr Expression that will be parsed to be a {@link ngeo-layertree-nodelayer}.

  htmlattribute

    {string} ngeo-layertree-listeners Expression that will be parsed to be a {@link Function} with the argument: { 'treeScope': !{@link angular.IScope}, 'treeCtrl': {@link import("ngeo/layertree/Controller.js").LayertreeController} }

  htmlattribute

    {string} ngeo-layertree-listenersexpr Expression that will be parsed to be a {@link ngeo-layertree-listeners}.

  nginject
  ngdoc

    directive

  ngname

    ngeoLayertree

  #### Parameters

  - ##### ngeoLayertreeTemplateUrl: string | {}

        Template URL for the directive.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### gmfMapComponent

- gmfMapComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/map/component.js:71

  A "map" directive for a GeoMapFish application.

  Example:

       <gmf-map gmf-map-map="mainCtrl.map"></gmf-map>

  htmlattribute

    {import("ol/Map.js").default} gmf-map-map The map.

  htmlattribute

    {boolean|undefined} gmf-map-manage-resize Whether to update the size of the map on browser window resize.

  htmlattribute

    {boolean|undefined} gmf-map-resize-transition The duration (milliseconds) of the animation that may occur on the div containing the map. Used to smoothly resize the map while the animation is in progress.

  nginject
  ngdoc

    directive

  ngname

    gmfMap

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### hasCoarsePointingDevice

- hasCoarsePointingDevice(): boolean

- - Defined in src/utils.js:71

  Return whether the primary pointing device is coarse or 'false' if unsupported (Internet Explorer). See https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer

  #### Returns boolean

### Const httpInterceptor

- httpInterceptor($q: IQService, ngeoDebounce: miscDebounce<{}>, ngeoNetworkStatus: Service): IHttpInterceptor

- - Defined in src/offline/NetworkStatus.js:199
  nginject

  #### Parameters

  - ##### $q: IQService

    The Angular $q service.

  - ##### ngeoDebounce: miscDebounce<{}>

    ngeo debounce service.

  - ##### ngeoNetworkStatus: Service

    ngeo network status service.

  #### Returns IHttpInterceptor

  the interceptor

### interactionDecoration

- interactionDecoration(interaction: Interaction): void

- - Defined in src/misc/decorate.js:40

  Provides a function that adds an "active" property (using `Object.defineProperty`) to an interaction, making it possible to use ngModel to activate/deactivate interactions.

  Example:

       <input type="checkbox" ngModel="interaction.active" />

  #### Parameters

  - ##### interaction: Interaction

    Interaction to decorate.

  #### Returns void

### isEventUsinCtrlKey

- isEventUsinCtrlKey(evt: JQueryEventObject | KeyboardEvent): boolean

- - Defined in src/utils.js:37

  Return whether the passed event has the 'ctrl' key (or 'meta' key on Mac) pressed or not.

  #### Parameters

  - ##### evt: JQueryEventObject | KeyboardEvent

    Event.

  #### Returns boolean

### layerDecoration

- layerDecoration(layer: BaseLayer): void

- - Defined in src/misc/decorate.js:62

  Provides a function that adds properties (using `Object.defineProperty`) to the layer, making it possible to control layer properties with ngModel.

  Example:

       <input type="checkbox" ngModel="layer.visible" />

  #### Parameters

  - ##### layer: BaseLayer

    Layer to decorate.

  #### Returns void

### layerLoading

- layerLoading(layer: BaseLayer, $scope: IScope): void

- - Defined in src/misc/decorate.js:107

  Provides a function that adds a 'loading 'property (using `Object.defineProperty`) to an ol.layer.Group or a layer with an ol.source.Tile or an ol.source.Image source. This property is true when the layer is loading and false otherwise.

  Example:

       <span ng-if="layer.loading">please wait</span>

  #### Parameters

  - ##### layer: BaseLayer

    layer.

  - ##### $scope: IScope

    Scope.

  #### Returns void

### layertreeTimeSliderComponent

- layertreeTimeSliderComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/layertree/timeSliderComponent.js:73

  Provide a directive to select a single date or a range of dates with a slider Example:

       <gmf-time-slider
           gmf-time-slider-time="{
             maxValue: '2013-12-31T00:00:00Z',
             minValue: '2006-01-01T00:00:00Z',
             mode: 'range'}"
           gmf-time-slider-on-date-selected="ctrl.onDateSelected(time)">
       </gmf-time-slider>

  htmlattribute

    {import('ngeo/datasource/OGC.js').TimeProperty} gmf-time-slider-time parameter for initialization.

  htmlattribute

    {function()} gmf-time-slider-on-date-selected Expression evaluated after date(s) changed

  nginject
  ngdoc

    directive

  ngname

    gmfTimeSlider

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### Const loaderSpinner

- loaderSpinner($http: IHttpService): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/spinner/directive.js:31
  nginject
  ngdoc

    directive

  ngname

    gmfLoaderSpinner

  #### Parameters

  - ##### $http: IHttpService

    Angular HTTP service.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### magnitude2

- magnitude2(a: Coordinate, b: Coordinate): number

- - Defined in src/offline/Downloader.js:33

  #### Parameters

  - ##### a: Coordinate

    Some coordinates.

  - ##### b: Coordinate

    Some other coordinates.

  #### Returns number

  The squared magnitude.

### mapComponent

- mapComponent($window: IWindowService): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/map/component.js:61

  Provides a directive used to insert a user-defined OpenLayers map in the DOM. The directive does not create an isolate scope.

  Examples:

  Simple:

       <div ngeo-map="ctrl.map"></div>

  Manage window resizing:

       <div
         ngeo-map="ctrl.map"
         ngeo-map-manage-resize="ctrl.manageResize"
         ngeo-map-resize-transition="ctrl.resizeTransition">
       </div>

  See our live examples: ../examples/permalink.html ../examples/simple.html

  htmlattribute

    {import("ol/Map.js").default} ngeo-map The map.

  ngdoc

    directive

  ngname

    ngeoMap

  nginject

  #### Parameters

  - ##### $window: IWindowService

    The Angular $window service.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### mapResenterComponent

- mapResenterComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/map/recenter.js:57

  Provides the "ngeoRecenter" directive, a widget for recentering a map to a specific extent (by using `ngeo-extent`) or a specific zoom level (by using `ngeo-zoom`).

  Example:

       <div ngeo-recenter ngeo-recenter-map="::ctrl.map">
         <a href="#" ngeo-extent="[-1898084, 4676723, 3972279, 8590299]">A</a>
         <a href="#" ngeo-extent="[727681, 5784754, 1094579, 6029353]">B</a>
         <a href="#" ngeo-zoom="1">Zoom to level 1</a>
       </div>

  Or with a select:

       <select ngeo-recenter ngeo-recenter-map="::ctrl.map">
         <option ngeo-extent="[-1898084, 4676723, 3972279, 8590299]">A</option>
         <option ngeo-extent="[727681, 5784754, 1094579, 6029353]">B</option>
       </select>

  See our live example: ../examples/recenter.html

  htmlattribute

    {import("ol/Map.js").default} ngeo-recenter-map The map.

  ngdoc

    directive

  ngname

    ngeoRecenter

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### mapResizeComponent

- mapResizeComponent($window: IWindowService): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/map/resizemap.js:52

  Provides a directive that resizes the map in an animation loop during 1 second when the value of "state" changes. This is especially useful when changing the size of other elements with a transition leads to a change of the map size.

  Example:

       <div ng-class="ctrl.open ? 'open' : 'close' ngeo-resizemap="ctrl.map"
         ngeo-resizemap-state="open">
       <div>
       <input type="checkbox" ng-model="ctrl.open" />

  See our live example: ../examples/animation.html

  nginject
  ngdoc

    directive

  ngname

    ngeoResizemap

  #### Parameters

  - ##### $window: IWindowService

    Angular window service.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### Const mapScaleselectorComponent

- mapScaleselectorComponent(ngeoScaleselectorTemplateUrl: string | {}): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/map/scaleselector.js:101

  Provides the "ngeoScaleselector" directive, a widget for selecting map scales.

  Example:

      <div ngeo-scaleselector ngeo-scaleselector-map="ctrl.map"></div>

  The expression passed to the ngeo-scaleselector attribute should return an array of this form:

  [20000, 10000, 5000, 2500]

  That directive's partial uses Bootstrap's `dropdown` and `dropdown-menu` classes, and `data-toggle="dropdown"`, so it is meant to be used with Bootstrap's "dropdown" jQuery plugin.

  You can pass options to configure the behaviors of this element. Options is a {@link ScaleselectorOptions} object.

  Example:

      <div ngeo-scaleselector ngeo-scaleselector-map="ctrl.map"></div>

  By default the directive uses "scaleselector.html" as its templateUrl. This can be changed by redefining the "ngeoScaleselectorTemplateUrl" value.

  The directive has its own scope, but it is not isolate scope. That scope includes a reference to the directive's controller: the "scaleselectorCtrl" scope property.

  The directive doesn't create any watcher. In particular the object including the scales information is now watched.

  See our live example: ../examples/scaleselector.html

  htmlattribute

    {import("ol/Map.js").default} ngeo-scaleselector-map The map.

  nginject
  ngdoc

    directive

  ngname

    ngeoScaleselector

  #### Parameters

  - ##### ngeoScaleselectorTemplateUrl: string | {}

    Template URL for the directive.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### measureAreaComponent

- measureAreaComponent($compile: ICompileService, gettextCatalog: gettextCatalog, $filter: IFilterService, ngeoMeasurePrecision: number): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/measure/area.js:45
  nginject
  ngdoc

    directive

  ngname

    ngeoDrawpoint

  #### Parameters

  - ##### $compile: ICompileService

    Angular compile service.

  - ##### gettextCatalog: gettextCatalog

    Gettext service.

  - ##### $filter: IFilterService

    Angular filter

  - ##### ngeoMeasurePrecision: number

    The precision.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### measureAzimutComponent

- measureAzimutComponent($compile: ICompileService, gettextCatalog: gettextCatalog, $filter: IFilterService, ngeoMeasurePrecision: number, ngeoMeasureDecimals: number): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/measure/azimut.js:49
  nginject
  ngdoc

    directive

  ngname

    ngeoDrawpoint

  #### Parameters

  - ##### $compile: ICompileService

    Angular compile service.

  - ##### gettextCatalog: gettextCatalog

    Gettext catalog.

  - ##### $filter: IFilterService

    Angular filter

  - ##### ngeoMeasurePrecision: number

    The precision.

  - ##### ngeoMeasureDecimals: number

    The decimals.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### measureLengthComponent

- measureLengthComponent($compile: ICompileService, gettextCatalog: gettextCatalog, $filter: IFilterService, $injector: IInjectorService, ngeoMeasurePrecision: number, ngeoSnappingTolerance: number): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/measure/length.js:48
  nginject
  ngdoc

    directive

  ngname

    ngeoDrawpoint

  #### Parameters

  - ##### $compile: ICompileService

    Angular compile service.

  - ##### gettextCatalog: gettextCatalog

    Gettext catalog.

  - ##### $filter: IFilterService

    Angular filter.

  - ##### $injector: IInjectorService

    Main injector.

  - ##### ngeoMeasurePrecision: number

    The precision.

  - ##### ngeoSnappingTolerance: number

    The tolerance.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### messagePopopComponent

- messagePopopComponent(ngeoPopupTemplateUrl: string): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/message/popupComponent.js:76

  Provides a directive used to show a popup over the page with a title and content.

  Things to know about this directive:

  - This directive is intended to be used along with the popup service.

  - By default the directive uses "popup.html" as its templateUrl. This can be changed by redefining the "ngeoPopupTemplateUrl" value.

  - The directive doesn't create any scope but relies on its parent scope. Properties like 'content', 'title' or 'open' come from the parent scope.

  nginject
  ngdoc

    directive

  ngname

    ngeoPopup

  #### Parameters

  - ##### ngeoPopupTemplateUrl: string

    URL to popup template.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### messagePopoverAnchorComponent

- messagePopoverAnchorComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/message/popoverComponent.js:95
  ngdoc

    directive

  nginject
  ngname

    ngeoPopoverAnchor

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object

### messagePopoverComponent

- messagePopoverComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/message/popoverComponent.js:51

  Provides a directive used to display a Bootstrap popover.

  anchor 1
  - action 1:
  ngdoc

    directive

  nginject
  ngname

    ngeoPopover

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### messagePopoverContentComponent

- messagePopoverContentComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/message/popoverComponent.js:114
  ngdoc

    directive

  nginject
  ngname

    ngeoPopoverContent

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object

### mobileMeasureAreaComponent

- mobileMeasureAreaComponent(gmfMobileMeasureAreaTemplateUrl: string | {}): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/mobile/measure/areaComponent.js:78

  Provide a directive to do a area measure on the mobile devices.

  Example:

       <div gmf-mobile-measurearea
         gmf-mobile-measurearea-active="ctrl.measureAreaActive"
         gmf-mobile-measurearea-map="::ctrl.map">
       </div>

  htmlattribute

    {boolean} gmf-mobile-measurearea-active Used to active or deactivate the component.

  htmlattribute

    {import("ol/Map.js").default} gmf-mobile-measurearea-map The map.

  nginject
  ngdoc

    directive

  ngname

    gmfMobileMeasureArea

  #### Parameters

  - ##### gmfMobileMeasureAreaTemplateUrl: string | {}

        Template URL for the directive.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### mobileMeasureLenthComponent

- mobileMeasureLenthComponent(gmfMobileMeasureLengthTemplateUrl: string | {}): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/mobile/measure/lengthComponent.js:78

  Provide a directive to do a length measure on the mobile devices.

  Example:

       <div gmf-mobile-measurelength
         gmf-mobile-measurelength-active="ctrl.measureLengthActive"
         gmf-mobile-measurelength-map="::ctrl.map">
       </div>

  htmlattribute

    {boolean} gmf-mobile-measurelength-active Used to active or deactivate the component.

  htmlattribute

    {import("ol/Map.js").default} gmf-mobile-measurelength-map The map.

  nginject
  ngdoc

    directive

  ngname

    gmfMobileMeasureLength

  #### Parameters

  - ##### gmfMobileMeasureLengthTemplateUrl: string | {}

        Template URL for the directive.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### mobileMeasurePointComponent

- mobileMeasurePointComponent(gmfMobileMeasurePointTemplateUrl: string | {}): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/mobile/measure/pointComponent.js:93

  Provide a directive to do a point (coordinate and elevation) measure on the mobile devices.

  Example:

       <div gmf-mobile-measurepoint
         gmf-mobile-measurepoint-active="ctrl.measurePointActive"
         gmf-mobile-measurepoint-map="::ctrl.map">
       </div>

  Where ctrl.measurePointLayers is an object like this:

       this.measurePointLayers = [
         {name: 'srtm', unit: 'm', decimals: 2},
         {name: 'wind', {unit: 'km/h'},
         {name: 'humidity'}
       ];

  htmlattribute

    {boolean} gmf-mobile-measurepoint-active Used to active or deactivate the component.

  htmlattribute

    {import("ol/Map.js").default} gmf-mobile-measurepoint-map The map.

  nginject
  ngdoc

    directive

  ngname

    gmfMobileMeasurePoint

  #### Parameters

  - ##### gmfMobileMeasurePointTemplateUrl: string | {}

        Template URL for the directive.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### mobileNavigationBackComponent

- mobileNavigationBackComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/mobile/navigation/component.js:313

  A directive to be used in conjunction with {@link import("gmf/mobile/navigation.js").default.component}. The directive can be set on a slide element of {@link import("gmf/mobile/navigation.js").default.component} with an expression. When the value of the expression changes and becomes true, the navigation returns to the previous slide, if the slide is currently active.

  Example:

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### mobileNavigationBackOnClickComponent

- mobileNavigationBackOnClickComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/mobile/navigation/component.js:358

  A directive to be used in conjunction with {@link import("gmf/mobile/navigation.js").default.component}. The directive can be set on a slide element of {@link import("gmf/mobile/navigation.js").default.component}. When the element is clicked, the navigation returns to the previous slide if the slide is currently active.

  Example:

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### mobileNavigationComponent

- mobileNavigationComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/mobile/navigation/component.js:82

  An "gmf-mobile-nav" directive defining the behavior of a tree-structured menu.

  The directive is to be placed on a `nav` element, with the following structure:

  When an element slides in the directive changes the text in the header.

  nginject

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The Directive Definition Object.

### ngeoOfflineTemplateUrl

- ngeoOfflineTemplateUrl($element: JQuery<HTMLElement>, $attrs: IAttributes, ngeoOfflineTemplateUrl: {}): string

- - Defined in src/offline/component.js:71
  nginject

  #### Parameters

  - ##### $element: JQuery<HTMLElement>

    Element.

  - ##### $attrs: IAttributes

    Attributes.

  - ##### ngeoOfflineTemplateUrl: {}

    Template function.

  #### Returns string

  Template URL.

### normalizeURL

- normalizeURL(url: string): string

- - Defined in src/offline/utils.js:46

  Extract the part after the URL authority.

  #### Parameters

  - ##### url: string

    A URL to normalize

  #### Returns string

  The normalized string.

### objectEditingGetWMSFeatureComponent

- objectEditingGetWMSFeatureComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/objectediting/getWMSFeatureComponent.js:59

  When activated, this directive registers clicks on an OL3 map and use the clicked coordinate to fetch a feature using the ObjectEditing query service. A feature returned is pushed to a collection.

  Example:

      <gmf-objecteditinggetwmsfeature
          gmf-objecteditinggetwmsfeature-active="ctrl.active"
          gmf-objecteditinggetwmsfeature-features="ctrl.features"
          gmf-objecteditinggetwmsfeature-layerinfo="ctrl.layerInfo"
          gmf-objecteditinggetwmsfeature-map="::ctrl.map">
      </gmf-objecteditinggetwmsfeature>

  htmlattribute

    {boolean} gmf-objecteditinggetwmsfeature-active Whether the directive is active or not.

  htmlattribute

    {import("ol/Collection.js").default} gmf-objecteditinggetwmsfeature-features The collection of features where to add those created by this directive.

  htmlattribute

    {import('gmf/objectediting/toolsComponent.js').ObjectEditingQueryableLayerInfo} gmf-objecteditinggetwmsfeature-layerinfo Queryable layer info.

  htmlattribute

    {import("ol/Map.js").default} gmf-objecteditinggetwmsfeature-map The map.

  nginject
  ngdoc

    directive

  ngname

    gmfObjecteditinggetwmsfeature

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### objectEditingToolsComponent

- objectEditingToolsComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/objectediting/toolsComponent.js:118

  Directive used to edit the geometry of a single feature using advanced tools.

  Example:

      <gmf-objecteditingtools
          gmf-objecteditingtools-active="ctrl.objectEditingActive"
          gmf-objecteditingtools-copyfromactive="ctrl.objectEditingCopyFromActive"
          gmf-objecteditingtools-deletefromactive="ctrl.objectEditingDeleteFromActive"
          gmf-objecteditingtools-feature="ctrl.objectEditingFeature"
          gmf-objecteditingtools-geomtype="ctrl.objectEditingGeomType"
          gmf-objecteditingtools-map="::ctrl.map"
          gmf-objecteditingtools-process="::ctrl.process"
          gmf-objecteditingtools-queryablelayerinfo="::ctrl.queryableLayerInfo"
          gmf-objecteditingtools-requireslayer="ctrl.requiresLayer"
          gmf-objecteditingtools-sketchfeatures="::ctrl.sketchFeatures">
      </gmf-objecteditingtools>

  htmlattribute

    {boolean} gmf-objecteditingtools-active Whether the directive is active or not.

  htmlattribute

    {boolean} gmf-objecteditingtools-copyfromactive Whether the 'Copy from' tool is active or not.

  htmlattribute

    {boolean} gmf-objecteditingtools-deletefromactive Whether the 'Delete from' tool is active or not.

  htmlattribute

    {import('ol/Feature.js').default<import("ol/geom/Geometry.js").default>} gmf-objecteditingtools-feature The feature to edit.

  htmlattribute

    {string} gmf-objecteditingtools-geomtype The geometry type.

  htmlattribute

    {import("ol/Map.js").default} gmf-objecteditingtools-map The map.

  htmlattribute

    {string} gmf-objectediting-process Determines the behavior to adopt when sketch features are added.

  htmlattribute

    {ObjectEditingQueryableLayerInfo} gmf-objectediting-queryablelayerinfo Queryable layer information.

  htmlattribute

    {boolean} gmf-objectediting-requireslayer Flag that determines if the currently active tool requires a queryable layer or not.

  htmlattribute

    {import("ol/Collection.js").default<import('ol/Feature.js').default<import("ol/geom/Geometry.js").default>>} gmf-objectediting-sketchfeatures Collection of temporary features being drawn by the tools.

  nginject
  ngdoc

    directive

  ngname

    gmfObjecteditingtools

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### processDrag_

- processDrag_(): void

- - Defined in contribs/gmf/src/dropfile/component.js:82

  Function to display and hide the 'drop-zone' element, which covers the element

  #### Returns void

### profileDrawLineComponent

- profileDrawLineComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/profile/drawLineComponent.js:61

  Simple directive that can be put on any element. The directive listen on clicks events to allow/disallow to draw one line (and only one) on the map. Typically used to draw the line that will serve the gmf.Profile.

  Example:

       <gmf-drawprofileline
         gmf-drawprofileline-active="mainCtrl.drawProfileActive"
         gmf-drawprofileline-map="mainCtrl.map"
         gmf-drawprofileline-line="mainCtrl.line"
       </gmf-drawprofileline>

  htmlattribute

    {import("ol/Map.js").default} gmf-drawprofileline-map The map.

  htmlattribute

    {import("ol/geom/LineString.js").default} gmf-drawprofileline-line The variable to connect with the drawn line.

  htmlattribute

    {boolean} [gmf]-drawprofileline-active Active the component.

  htmlattribute

    {import("ol/style/Style.js").default} [gmf]-drawprofileline-style Optional style for the drawn line.

  ngdoc

    directive

  ngname

    gmfDrawprofileline

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### profileElevationComponent

- profileElevationComponent(ngeoDebounce: miscDebounce<{}>, ngeoProfileOptions: ngeoProfileOptions): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/profile/elevationComponent.js:111

  Provides a directive used to insert an elevation profile chart in the DOM.

  Example:

       <div ngeo-profile="ctrl.profileData"
         ngeo-profile-options="ctrl.profileOptions"
         ngeo-profile-pois="ctrl.profilePois">
       </div>

  Where `ctrl.profileOptions` is of type {@link ProfileOptions}; `ctrl.profileData` and `ctrl.profilePois` are arrays which will be processed by `distanceExtractor` `{function(Object): number}`, `linesConfiguration` `{Object<string, LineConfiguration>}` {@link LineConfiguration} and {@link PoiExtractor}.

  See our live example: ../examples/profile.html

  htmlattribute

    {?Object} ngeo-profile The profile data.

  htmlattribute

    {ProfileOptions} ngeo-profile-options The options.

  htmlattribute

    {?Array} ngeo-profile-pois The data for POIs.

  htmlattribute

    {*} ngeo-profile-highlight Any property on the scope which evaluated value may correspond to distance from origin.

  nginject
  ngdoc

    directive

  ngname

    ngeoProfile

  #### Parameters

  - ##### ngeoDebounce: miscDebounce<{}>

    ngeo Debounce factory.

  - ##### ngeoProfileOptions: ngeoProfileOptions

    The options.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### pushUnlessIncluded

- pushUnlessIncluded(arr: any[], obj: any): boolean

- - Defined in src/array.js:30

  Push an object in an array, unless already there.

  #### Parameters

  - ##### arr: any[]

    The array to push the element.

  - ##### obj: any

    The object for which to test.

  #### Returns boolean

  The object has been pushed in the array.

### querable

- querable(def: overlayDefinition): boolean

- - Defined in api/src/Querent.js:38

  #### Parameters

  - ##### def: overlayDefinition

    Overlay definition.

  #### Returns boolean

  Is the overlay queryable.

### rasterComponent

- rasterComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in contribs/gmf/src/raster/component.js:110

  Provide a directive that set a value each 500ms with the elevation under the mouse cursor position on the map. The value must come from the elevation service of a c2cgeoportal server. The server's URL must be defined as config value of the application.

  Example:

       <span gmf-elevation
             gmf-elevation-active="elevationActive"
             gmf-elevation-elevation="elevationValue"
             gmf-elevation-layer="mainCtrl.elevationLayer"
             gmf-elevation-map="::mainCtrl.map">
             {{elevationValue}}
       </span>

  For value in meter `elevationLayersConfig` can be an empty object, complex example:

       elevationLayersConfig = {
           '<layer>': {
               'filter': 'ngeoUnitPrefix',
               'args': ['m²', 'square'],
               'postfix': '<notice>',
               'separator': ''
           }
       };

  htmlattribute

    {boolean} gmf-elevation-active A boolean to set active or deactivate the component.

  htmlattribute

    {number} gmf-elevation-elevation The value to set with the elevation value.

  htmlattribute

    {string} gmf-elevation-layer Elevation layer to use.

  htmlattribute

    {import("ol/Map.js").default} gmf-elevation-map The map.

  ngdoc

    directive

  ngname

    gmfElevation

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### sortableComponent

- sortableComponent($timeout: ITimeoutService): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/misc/sortableComponent.js:82

  Provides a directive that allows drag-and-dropping DOM items between them. It also changes the order of elements in the given array.

  It is typically used together with `ng-repeat`, for example for re-ordering layers in a map.

  Example:

      <ul ngeo-sortable="ctrl.layers"
          ngeo-sortable-options="{handleClassName: 'ngeo-sortable-handle'}">
        <li ng-repeat="layer in ctrl.layers">
          <span class="ngeo-sortable-handle">handle</span>{{layer.get('name')}}
        </li>
      </ul>

  The value of the "ngeo-sortable" attribute is an expression which evaluates to an array (an array of layers in the above example). This is the array that is re-ordered after a drag-and-drop.

  The element with the class "ngeo-sortable-handle" is the "drag handle". It is required.

  This directives uses `$watchCollection` to watch the "sortable" array. So if some outside code adds/removes elements to/from the "sortable" array, the "ngeoSortable" directive will pick it up.

  See our live example: ../examples/layerorder.html

  htmlattribute

    {import("ol/layer/Base.js").default[]} ngeo-sortable The layers to sort.

  htmlattribute

    {miscSortableOptions} ngeo-sortable-options The options.

  htmlattribute

    {Function(JQuery, Array)?} ngeo-sortable-callback Callback function called after the move end. The Function will be called with the element and the sort array as arguments.

  htmlattribute

    {Object?} ngeo-sortable-callback-ctx Context to apply at the call of the callback function.

  nginject
  ngdoc

    directive

  ngname

    ngeoSortable

  #### Parameters

  - ##### $timeout: ITimeoutService

    Angular timeout service.

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  The directive specs.

### traverseLayer

- traverseLayer(layer: BaseLayer, ancestors: LayerGroup[], visitor: {}): void

- - Defined in src/offline/utils.js:30

  #### Parameters

  - ##### layer: BaseLayer

    A layer tree.

  - ##### ancestors: LayerGroup[]

    The groups to which the layer belongs to.

  - ##### visitor: {}

    A function which will return false if descend must stop.

  #### Returns void

### trustHtmlAutoFilter

- trustHtmlAutoFilter($sce: ISCEService, ngeoStringToHtmlReplacements: ngeoStringToHtmlReplacements): {}

- - Defined in src/misc/filters.js:423

  A filter to mark a value as trusted HTML, with the addition of automatically converting any string that matches the StringToHtmlReplacements list to HTML.

  Usage:

  If you use it, you don't require the "ngSanitize".

  nginject
  ngdoc

    filter

  ngname

    ngeoTrustHtmlAuto

  #### Parameters

  - ##### $sce: ISCEService

    Angular sce service.

  - ##### ngeoStringToHtmlReplacements: ngeoStringToHtmlReplacements

        List of replacements for string to html.

  #### Returns {}

  The filter function.

### trustHtmlFilter

- trustHtmlFilter($sce: ISCEService): {}

- - Defined in src/misc/filters.js:393

  A filter to mark a value as trusted HTML.

  Usage:

  If you use it, you don't require the "ngSanitize".

  nginject
  ngdoc

    filter

  ngname

    ngeoTrustHtml

  #### Parameters

  - ##### $sce: ISCEService

    Angular sce service.

  #### Returns {}

  The filter function.

### unlistenByKeys

- unlistenByKeys(keys: EventsKey[]): void

- - Defined in src/events.js:31

  Unregisters event listeners on a list of event targets, then empty the list.

  #### Parameters

  - ##### keys: EventsKey[]

    List of keys to unlisten.

  #### Returns void

## Object literals

### Const ArrowDirections

ArrowDirections: object

- Defined in src/misc/FeatureHelper.js:78

Arrow possible direction on segments of lines.

### BACKWARDS

BACKWARDS: string = "backwards"

- Defined in src/misc/FeatureHelper.js:90

### BOTH

BOTH: string = "both"

- Defined in src/misc/FeatureHelper.js:94

### FORWARDS

FORWARDS: string = "forwards"

- Defined in src/misc/FeatureHelper.js:86

### NONE

NONE: string = "none"

- Defined in src/misc/FeatureHelper.js:82

### Const ArrowPositions

ArrowPositions: object

- Defined in src/misc/FeatureHelper.js:101

Arrow possible position on lines

### EVERY

EVERY: string = "every"

- Defined in src/misc/FeatureHelper.js:113

### FIRST

FIRST: string = "first"

- Defined in src/misc/FeatureHelper.js:105

### LAST

LAST: string = "last"

- Defined in src/misc/FeatureHelper.js:109

### Const authenticationComponent

authenticationComponent: object

- Defined in contribs/gmf/src/authentication/component.js:119

An "authentication" component for a GeoMapFish application. With the use of the "authentication" service, it features a complete interface for the user to be able to login, logout, change or reset his or her password. The `gmfUser` angular value is also used to keep track of the user information. When empty, that means that the user isn't connected yet.

While not logged in, the "login" form is shown, which allows the user to either log in or ask for a password reset.

Once logged in, the "logout" form is shown, which allows the user to either log out or change his or her password.

Example:

     <gmf-authentication
       gmf-authentication-info-message="mainCtrl.loginInfoMessage">
     </gmf-authentication>

htmlattribute

  {PasswordValidator} gmf-authentication-password-validator A PasswordValidator Object to add constraint on user's new password. The `allowPasswordChange` config. To use it you must also allow the user to change its password.

htmlattribute

  {string} gmf-authentication-info-message Message to show above the authentication form.

ngdoc

  component

ngname

  gmfAuthentication

### controller

controller: string = "GmfAuthenticationController"

- Defined in contribs/gmf/src/authentication/component.js:125

### templateUrl

templateUrl: gmfAuthenticationTemplateUrl = gmfAuthenticationTemplateUrl

- Defined in contribs/gmf/src/authentication/component.js:126

### bindings

bindings: object

- Defined in contribs/gmf/src/authentication/component.js:120

### infoMessage

infoMessage: string = "=?gmfAuthenticationInfoMessage"

- Defined in contribs/gmf/src/authentication/component.js:123

### onSuccessfulLogin

onSuccessfulLogin: string = "<?gmfAuthenticationOnSuccessfulLogin"

- Defined in contribs/gmf/src/authentication/component.js:122

### passwordValidator

passwordValidator: string = "<?gmfAuthenticationPasswordValidator"

- Defined in contribs/gmf/src/authentication/component.js:121

### Const backgroundlayerselectorComponent

backgroundlayerselectorComponent: object

- Defined in contribs/gmf/src/backgroundlayerselector/component.js:100

Provide a "background layer selector" component.

Example:

     <gmf-backgroundlayerselector
       gmf-backgroundlayerselector-map="::ctrl.map"
       gmf-backgroundlayerselector-select="onBackgroundSelected()">
     </gmf-backgroundlayerselector>

Used metadata:

- `thumbnail`: The URL used for the icon.

Used functionalities:

- `default_basemap`: Base maps to use by default.

htmlattribute

  {import("ol/Map.js").default} [gmf]-backgroundlayerselector-map The map.

htmlattribute

  {Function} gmf-backgroundlayerselector-select Function called when a layer was selected by the user.

ngdoc

  component

ngname

  gmfBackgroundlayerselector

### controller

controller: string = "GmfBackgroundlayerselectorController as ctrl"

- Defined in contribs/gmf/src/backgroundlayerselector/component.js:101

### templateUrl

templateUrl: gmfBackgroundlayerselectorTemplateUrl = gmfBackgroundlayerselectorTemplateUrl

- Defined in contribs/gmf/src/backgroundlayerselector/component.js:106

### bindings

bindings: object

- Defined in contribs/gmf/src/backgroundlayerselector/component.js:102

### map

map: string = "=gmfBackgroundlayerselectorMap"

- Defined in contribs/gmf/src/backgroundlayerselector/component.js:103

### select

select: string = "&?gmfBackgroundlayerselectorSelect"

- Defined in contribs/gmf/src/backgroundlayerselector/component.js:104

### Const disclaimerComponent

disclaimerComponent: object

- Defined in contribs/gmf/src/disclaimer/component.js:426

Provide a "disclaimer" component for GeoMapFish that is bound to the layers added and removed from a map.

Example:

     <gmf-disclaimer
       gmf-disclaimer-map="::ctrl.map"
       gmf-disclaimer-external-msg="disclaimerMsg"
       gmf-disclaimer-external-visibility="disclaimerVisibility">
     </gmf-disclaimer>

You can also display the disclaimer messages in popups or use them in another context. The example below show you how to display the disclaimer messages in a ngeo-modal window (external case).

Example:

     <gmf-disclaimer
       gmf-disclaimer-map="::ctrl.map"
       gmf-disclaimer-external-msg="disclaimerMsg"
       gmf-disclaimer-external-visibility="disclaimerVisibility">
     </gmf-disclaimer>
     <ngeo-modal ng-model="disclaimerVisibility">
      <div class="modal-header ui-draggable-handle">
        <button type="button" class="close" data-dismiss="modal"
                aria-hidden="true">&times;</button>
      </div>
      <div class="modal-body">
        <div ng-bind-html="disclaimerMsg"></div>
      </div>
    </ngeo-modal>

htmlattribute

  {import("ol/Map.js").default} [gmf]-disclaimer-map The map.

htmlattribute

  {boolean?} gmf-disclaimer-external-visibility variable that will be set to true if the disclaimers contain a new message. To uses it, you must set the gmf-disclaimer-external to true.

htmlattribute

  {string?} gmf-disclaimer-external-msg variable that will contains the disclaimer messages. To uses it, you must set the gmf-disclaimer-external to true.

ngdoc

  component

ngname

  gmfDisclaimer

### controller

controller: DisclaimerController = DisclaimerController

- Defined in contribs/gmf/src/disclaimer/component.js:427

### bindings

bindings: object

- Defined in contribs/gmf/src/disclaimer/component.js:428

### map

map: string = "=gmfDisclaimerMap"

- Defined in contribs/gmf/src/disclaimer/component.js:429

### msg

msg: string = "=?gmfDisclaimerExternalMsg"

- Defined in contribs/gmf/src/disclaimer/component.js:431

### visibility

visibility: string = "=?gmfDisclaimerExternalVisibility"

- Defined in contribs/gmf/src/disclaimer/component.js:430

### Const dynamicUrl

dynamicUrl: object

- Defined in api/src/constants.js:28

### dynamicUrl

dynamicUrl: undefined = undefined

- Defined in api/src/constants.js:29

### Const editingAttributeComponent

editingAttributeComponent: object

- Defined in src/editing/attributesComponent.js:93

Component used to render the attributes of a feature into a form. Example:

    <ngeo-attributes
      ngeo-attributes-attributes="::ctrl.attributes"
      ngeo-attributes-disabled="ctrl.attributesDisabled"
      ngeo-attributes-feature="::ctrl.feature">
    </ngeo-attributes>

htmlattribute

  {import('ngeo/format/Attribute.js').Attribute[]} ngeo-attributes-attributes The list of attributes to use.

htmlattribute

  {boolean} ngeo-attributes-disabled Whether the fieldset should be disabled or not.

htmlattribute

  {import('ol/Feature.js').default<import("ol/geom/Geometry.js").default>} ngeo-attributes-feature The feature.

ngdoc

  component

ngname

  ngeoAttributes

### controller

controller: string = "ngeoAttributesController as attrCtrl"

- Defined in src/editing/attributesComponent.js:94

### templateUrl

templateUrl: ngeoAttributesTemplateUrl = ngeoAttributesTemplateUrl

- Defined in src/editing/attributesComponent.js:103

### bindings

bindings: object

- Defined in src/editing/attributesComponent.js:95

### attributes

attributes: string = "=ngeoAttributesAttributes"

- Defined in src/editing/attributesComponent.js:96

### disabled

disabled: string = "<ngeoAttributesDisabled"

- Defined in src/editing/attributesComponent.js:97

### feature

feature: string = "=ngeoAttributesFeature"

- Defined in src/editing/attributesComponent.js:98

### require

require: object

- Defined in src/editing/attributesComponent.js:100

### form

form: string = "^"

- Defined in src/editing/attributesComponent.js:101

### Const floorSelectorComponent

floorSelectorComponent: object

- Defined in contribs/gmf/src/floor/floorselectorComponent.js:218

Provide a floor selector component. Note that it is not limited to floors, but allows selecting a dimension value from any list of values with labels.

Example:

     <gmf-floorselector class="gmf-floorselector ol-unselectable ol-control"
       value="mainCtrl.dimensions.FLOOR">
     </gmf-floorselector>

With the injected value `gmfFloors` with:

     [
       {value: 'value1', label: 'label1'},
       {value: 'value2', label: 'label2'},
       ...
     ];

htmlattribute

  {string} value Current floor value.

ngdoc

  component

ngname

  gmfFloorselector

### controller

controller: Controller = Controller

- Defined in contribs/gmf/src/floor/floorselectorComponent.js:222

### templateUrl

templateUrl: gmfFloorselectorTemplateUrl = gmfFloorselectorTemplateUrl

- Defined in contribs/gmf/src/floor/floorselectorComponent.js:223

### bindings

bindings: object

- Defined in contribs/gmf/src/floor/floorselectorComponent.js:219

### value

value: string = "="

- Defined in contribs/gmf/src/floor/floorselectorComponent.js:220

### Const gmfBackgroundlayerStatus

gmfBackgroundlayerStatus: object

- Defined in contribs/gmf/src/backgroundlayerselector/status.js:27

To know the status of the background layer

property

  {boolean} touchedByUser Is the background layer (potentially) manually set by the user ?

### touchedByUser

touchedByUser: boolean = false

- Defined in contribs/gmf/src/backgroundlayerselector/status.js:28

### Const gridComponent

gridComponent: object

- Defined in src/grid/component.js:89

A grid component for displaying tabular data. The columns of the grid are sortable, rows can be selected with a single click (also in combination with SHIFT and CTRL/Meta).

Example:

    <ngeo-grid
      ngeo-grid-configuration="::ctrl.gridConfiguration"
    </ngeo-grid>

htmlattribute

  {import("ngeo/grid/Config.js").default} ngeo-grid-configuration The configuration to use.

ngdoc

  component

ngname

  ngeoGrid

### controller

controller: GridController = GridController

- Defined in src/grid/component.js:90

### templateUrl

templateUrl: ngeoGridTemplateUrl = ngeoGridTemplateUrl

- Defined in src/grid/component.js:94

### bindings

bindings: object

- Defined in src/grid/component.js:91

### configuration

configuration: string = "=ngeoGridConfiguration"

- Defined in src/grid/component.js:92

### Const headerComponent

headerComponent: object

- Defined in contribs/gmf/src/header/component.js:76

Provide an "header" component that only provide an html template. Do that instead of use ng-include because otherwise it breaks the permalink (maybe related to the bug described in the StatemanagerLocation in src/statemanager/Location.js)

ngdoc

  component

ngname

  gmfHeader

### templateUrl

templateUrl: gmfHeaderTemplateUrl = gmfHeaderTemplateUrl

- Defined in contribs/gmf/src/header/component.js:77

### Const layertreeComponent

layertreeComponent: object

- Defined in contribs/gmf/src/layertree/component.js:193

This component creates a layertree based on the c2cgeoportal JSON themes source and a {@link import("ngeo/layertreeComponent.js").default}. The controller used by this component defines some functions for each node that are created by a default template. This default template can be overridden by setting the value 'gmf.layertreeTemplateUrl' but you will have to adapt the ngeoLayertreeTemplateUrl value too (to define the children's nodes template path).

Example:

     <gmf-layertree
       gmf-layertree-dimensions="ctrl.dimensions"
       gmf-layertree-map="ctrl.map">
     </gmf-layertree>

You can add an attribute 'gmf-layertree-openlinksinnewwindow="::true"' to open metadata URLs in a new window. By default, and in the default template, links will be opened in a popup (The window.openIframePopup function must be available !)

Used metadata:

- `isChecked`: if 'false' the layer visibility will be set to false.
- `iconUrl`: layer icon full URL.
- `legendRule`: WMS rule used to get a layer icon.
- `isLegendExpanded: if 'true' the legend is expanded by default.
- `metadataUrl`: Display a popup with the content of the given URL if possible also open a new window.
- `exclusiveGroup`: Whether the group contains children that have to be mutually exclusive, meaning that only one child may be ON at any time.
- `legend`: Display the legend of this layer. For WMS and WMTS layers.
- `legendImage`: The URL to the image used as a legend in the layer tree. For WMS and WMTS layers.
- `maxResolution`: The max resolution where the layer is visible. For WMS layers. On WMTS layers it will have an effect on the node in the layertree but not on the layertree directly.
- `minResolution`: The min resolution where the layer is visible. For WMS layers. On WMTS layers it will have an effect on the node in the layertree but not on the layer directly.
- `ogcServer`: The corresponding OGC server for a WMTS layer. For WMTS layers.
- `opacity`: Layer opacity. 1.0 means fully visible, 0 means invisible, For WMS and WMTS layers.
- `timeAttribute`: The name of the time attribute. For WMS(-T) layers.
- `wmsLayers`: A corresponding WMS layer for WMTS layers. Used to query the WMTS layers and to print them. (See also printLayers and queryLayers metadata for more granularity). For WMTS Layers.
- `printLayers`: A WMS layer that will be used instead of the WMTS layers in the print.
- `queryLayers`: The WMS layers used as references to query the WMTS layers. For WMTS layers.
- `isExpanded`: Whether the layer group is expanded by default. For layer groups (only).
- `snappingConfig`: Whether the layer is used for snapping.

htmlattribute

  {import("ol/Map.js").default} gmf-layertree-map The map.

htmlattribute

  {Object<string, string>|undefined} gmf-layertree-dimensions Global dimensions object.

ngdoc

  component

ngname

  gmfLayertreeComponent

### controller

controller: string = "GmfLayertreeController as gmfLayertreeCtrl"

- Defined in contribs/gmf/src/layertree/component.js:194

### template

template: gmfLayertreeTemplate = gmfLayertreeTemplate

- Defined in contribs/gmf/src/layertree/component.js:199

### bindings

bindings: object

- Defined in contribs/gmf/src/layertree/component.js:195

### dimensions

dimensions: string = "=?gmfLayertreeDimensions"

- Defined in contribs/gmf/src/layertree/component.js:197

### map

map: string = "=gmfLayertreeMap"

- Defined in contribs/gmf/src/layertree/component.js:196

### Const lidarprofileComponent

lidarprofileComponent: object

- Defined in contribs/gmf/src/lidarprofile/component.js:81

Provide a component that display a lidar profile panel. You can have only one lidarprofile in your page.

Example:

     <gmf-lidarprofile
       gmf-lidarprofile-active="ctrl.profileActive"
       gmf-lidarprofile-line="ctrl.profileLine">
     </gmf-lidarprofile>

ngdoc

  component

ngname

  gmfLidarprofile

### controller

controller: string = "GmfLidarprofileController"

- Defined in contribs/gmf/src/lidarprofile/component.js:82

### templateUrl

templateUrl: gmfLidarprofileTemplateUrl = gmfLidarprofileTemplateUrl

- Defined in contribs/gmf/src/lidarprofile/component.js:87

### bindings

bindings: object

- Defined in contribs/gmf/src/lidarprofile/component.js:83

### active

active: string = "=gmfLidarprofileActive"

- Defined in contribs/gmf/src/lidarprofile/component.js:84

### line

line: string = "=gmfLidarprofileLine"

- Defined in contribs/gmf/src/lidarprofile/component.js:85

### Const lidarprofilePanelComponent

lidarprofilePanelComponent: object

- Defined in contribs/gmf/src/lidarprofile/panelComponent.js:93

Provide a component that display a lidar profile panel. You can have only one lidarprofile in your page.

Example:

     <gmf-lidarprofile-panel
       gmf-lidarprofile-panel-active="ctrl.profileActive"
       gmf-lidarprofile-panel-map="::ctrl.map"
       gmf-lidarprofile-panel-line="ctrl.profileLine">
     </gmf-lidarprofile-panel>

You must also have a pytreeLidarprofileJsonUrl constant defined like: `module.constant('pytreeLidarprofileJsonUrl', 'https://sample.com/pytree/');`

ngdoc

  component

ngname

  gmfLidarprofilePanel

### controller

controller: string = "gmfLidarprofilePanelController"

- Defined in contribs/gmf/src/lidarprofile/panelComponent.js:94

### templateUrl

templateUrl: gmfLidarprofilePanelTemplateUrl = gmfLidarprofilePanelTemplateUrl

- Defined in contribs/gmf/src/lidarprofile/panelComponent.js:100

### bindings

bindings: object

- Defined in contribs/gmf/src/lidarprofile/panelComponent.js:95

### active

active: string = "=gmfLidarprofilePanelActive"

- Defined in contribs/gmf/src/lidarprofile/panelComponent.js:96

### line

line: string = "=gmfLidarprofilePanelLine"

- Defined in contribs/gmf/src/lidarprofile/panelComponent.js:98

### map

map: string = "<gmfLidarprofilePanelMap"

- Defined in contribs/gmf/src/lidarprofile/panelComponent.js:97

### Const mapMousepositionComponent

mapMousepositionComponent: object

- Defined in contribs/gmf/src/map/mousepositionComponent.js:84

Provide a component to display the mouse position coordinates depending on the chosen projection. The component also provides a projection picker to choose how the coordinates are displayed. service.

Example:

htmlattribute

  {import("ol/Map.js").default} gmf-mouseposition-map The map.

ngdoc

  component

ngname

  gmfMouseposition

### controller

controller: string = "gmfMousepositionController as ctrl"

- Defined in contribs/gmf/src/map/mousepositionComponent.js:85

### templateUrl

templateUrl: gmfMapMousepositionTemplateUrl = gmfMapMousepositionTemplateUrl

- Defined in contribs/gmf/src/map/mousepositionComponent.js:89

### bindings

bindings: object

- Defined in contribs/gmf/src/map/mousepositionComponent.js:86

### map

map: string = "<gmfMousepositionMap"

- Defined in contribs/gmf/src/map/mousepositionComponent.js:87

### Const messageModalComponent

messageModalComponent: object

- Defined in src/message/modalComponent.js:70

Provides the "ngeoModal" component.

This component shows a Bootstrap modal when the `ngModel` expression evaluates to `true`, and it hides it when the `ngModel` expression evaluates to `false`.

The components also changes the `ngModel` value when the user manually closes the modal.

This component is based on Bootstrap's `modal` classes and associated jQuery plugin.

    <ngeo-modal ng-model="modalShown">
      <div class="modal-header ui-draggable-handle">
        <button type="button" class="close" data-dismiss="modal"
                aria-hidden="true">&times;</button>
        <h4 class="modal-title">The Title</h4>
      </div>
      <div class="modal-body">Some content</div>
    </ngeo-modal>

Note: for z-indexing purpose, the modal DOM element is automatically moved to document body element.

See our live example: ../examples/modal.html

htmlattribute

  {string} ngeo-draggable-handle The jquery selector that define the element that can starts the dragging sequence. Defaults to `.ui-draggable-handle`.

htmlattribute

  {boolean} ngeo-modal-resizable Whether the modal can be resized or not. Defaults to `false`.

htmlattribute

  {boolean} ngeo-modal-closable Whether the modal can be closed by clicking outside it or by hiting the `escape` keyboard key. Defaults to `true`.

ngdoc

  component

ngname

  ngeoModal

### controller

controller: string = "ngeoModalController"

- Defined in src/message/modalComponent.js:82

### template

template: string = `<div class="modal fade" tabindex="-1" role="dialog"><div class="modal-dialog"><div class="modal-content"><ng-transclude></ng-transclude></div></div></div>`

- Defined in src/message/modalComponent.js:71

### transclude

transclude: true = true

- Defined in src/message/modalComponent.js:81

### bindings

bindings: object

- Defined in src/message/modalComponent.js:83

### closable

closable: string = "<ngeoModalClosable"

- Defined in src/message/modalComponent.js:86

### draggableHandle

draggableHandle: string = "=?ngeodraggableHandle"

- Defined in src/message/modalComponent.js:84

### resizable

resizable: string = "<ngeoModalResizable"

- Defined in src/message/modalComponent.js:85

### require

require: object

- Defined in src/message/modalComponent.js:78

### ngModel

ngModel: string = "ngModel"

- Defined in src/message/modalComponent.js:79

### Const ngeoMessageDisplaywindowComponent

ngeoMessageDisplaywindowComponent: object

- Defined in src/message/displaywindowComponent.js:349

The `ngeo-displaywindow` component is an alternative to the `ngeo.message.Popup`. What they have in common:

- support title
- support url to be shown in an iframe
- support plain HTML content
- support sizing, i.e. height and width.
- support being opened/closed

The differences with the `ngeo.message.Popup` are:

- it supports being dragged
- it supports being resized
- support angularjs template content

Example:

htmlattribute

  {boolean} [ngeo]-displaywindow-clear-on-close Whether to clear the content on close or not.

htmlattribute

  {string} [ngeo]-displaywindow-content The html content. If not provided, you must provide an url.

htmlattribute

  {string} [ngeo]-displaywindow-content-template AngularJS template. It gets compiled during runtime with the supplied scope (ngeo-displaywindow-content-scope).

htmlattribute

  {angular.IScope} [ngeo]-displaywindow-content-scope Scope used for ngeo-displaywindow-content-template.

htmlattribute

  {boolean} [ngeo]-displaywindow-desktop If true, the window is draggable and resizable. If not set, you must set manually both parameter.

htmlattribute

  {boolean} [ngeo]-displaywindow-draggable Whether the window is draggable or not.

htmlattribute

  {string} [ngeo]-displaywindow-draggable-containment The zone (CSS selector) where the window is authorized to be dragged.

htmlattribute

  {string} [ngeo]-displaywindow-height The default height of the window.

htmlattribute

  {boolean} [ngeo]-displaywindow-open Whether the window is open or not.

htmlattribute

  {string} [ngeo]-displaywindow-title The html title of the window.

htmlattribute

  {string} [ngeo]-displaywindow-url The URL to open in an iframe, in the window. The content attribute must not be provided.

htmlattribute

  {string} [ngeo]-displaywindow-width The default width of the window.

ngdoc

  component

ngname

  ngeoDisplaywindow

### controller

controller: Controller = Controller

- Defined in src/message/displaywindowComponent.js:365

### templateUrl

templateUrl: ngeoMessageDisplaywindowTemplateUrl = ngeoMessageDisplaywindowTemplateUrl

- Defined in src/message/displaywindowComponent.js:366

### bindings

bindings: object

- Defined in src/message/displaywindowComponent.js:350

### clearOnClose

clearOnClose: string = "<?"

- Defined in src/message/displaywindowComponent.js:351

### content

content: string = "=?"

- Defined in src/message/displaywindowComponent.js:352

### contentScope

contentScope: string = "<?"

- Defined in src/message/displaywindowComponent.js:354

### contentTemplate

contentTemplate: string = "=?"

- Defined in src/message/displaywindowComponent.js:353

### desktop

desktop: string = "<?"

- Defined in src/message/displaywindowComponent.js:355

### draggable

draggable: string = "<?"

- Defined in src/message/displaywindowComponent.js:356

### draggableContainment

draggableContainment: string = "<?"

- Defined in src/message/displaywindowComponent.js:357

### height

height: string = "=?"

- Defined in src/message/displaywindowComponent.js:358

### open

open: string = "=?"

- Defined in src/message/displaywindowComponent.js:359

### resizable

resizable: string = "<?"

- Defined in src/message/displaywindowComponent.js:360

### title

title: string = "=?"

- Defined in src/message/displaywindowComponent.js:361

### url

url: string = "=?"

- Defined in src/message/displaywindowComponent.js:362

### width

width: string = "=?"

- Defined in src/message/displaywindowComponent.js:363

### Const objecteditingComponent

objecteditingComponent: object

- Defined in contribs/gmf/src/objectediting/component.js:162

Component used to edit the geometry of a single feature using advanced tools. The geometry must be Multi.

Example:

    <gmf-objectediting
        gmf-objectediting-active="ctrl.objectEditingActive"
        gmf-objectediting-feature="ctrl.objectEditingFeature"
        gmf-objectediting-geomtype="ctrl.objectEditingGeomType"
        gmf-objectediting-layernodeid="ctrl.objectEditingLayerNodeId"
        gmf-objectediting-map="::ctrl.map"
        gmf-objectediting-sketchfeatures="::ctrl.sketchFeatures">
    </gmf-objectediting>

htmlattribute

  {boolean} gmf-objectediting-active Whether the component is active or not.

htmlattribute

  {import("ol/Feature.js").default<import("ol/geom/Geometry.js").default>} gmf-objectediting-feature The feature to edit.

htmlattribute

  {string} gmf-objectediting-geomtype The geometry type.

htmlattribute

  {number} gmf-objectediting-layernodeid The GMF layer node id.

htmlattribute

  {import("ol/Map.js").default} gmf-objectediting-map The map.

htmlattribute

  {import("ol/Collection.js").default<import("ol/Feature.js").default<import("ol/geom/Geometry.js").default>>} gmf-objectediting-sketchfeatures Collection of temporary features being drawn by the tools.

ngdoc

  component

ngname

  gmfObjectediting

### controller

controller: string = "GmfObjecteditingController as oeCtrl"

- Defined in contribs/gmf/src/objectediting/component.js:163

### templateUrl

templateUrl: gmfObjecteditingTemplateUrl = gmfObjecteditingTemplateUrl

- Defined in contribs/gmf/src/objectediting/component.js:172

### bindings

bindings: object

- Defined in contribs/gmf/src/objectediting/component.js:164

### active

active: string = "=gmfObjecteditingActive"

- Defined in contribs/gmf/src/objectediting/component.js:165

### feature

feature: string = "<gmfObjecteditingFeature"

- Defined in contribs/gmf/src/objectediting/component.js:166

### geomType

geomType: string = "<gmfObjecteditingGeomtype"

- Defined in contribs/gmf/src/objectediting/component.js:167

### layerNodeId

layerNodeId: string = "<gmfObjecteditingLayernodeid"

- Defined in contribs/gmf/src/objectediting/component.js:168

### map

map: string = "<gmfObjecteditingMap"

- Defined in contribs/gmf/src/objectediting/component.js:169

### sketchFeatures

sketchFeatures: string = "<gmfObjecteditingSketchfeatures"

- Defined in contribs/gmf/src/objectediting/component.js:170

### Const olscControls3dComponent

olscControls3dComponent: object

- Defined in src/olcs/controls3d.js:330

Provides the "ngeoOlcsControls3d" component, a widget for controlling the 3D camera.

Example:

    <ngeo-olcs-controls3d ng-if="$ctrl.manager && $ctrl.manager.is3dEnabled()">
    </ngeo-olcs-controls3d>

By default the directive uses "controls3d.html" as its templateUrl. This can be changed by redefining the "ngeoOlcsControls3dTemplateUrl" value.

See our live example: ../examples/simple3d.html

htmlattribute

  {olcs.contrib.Manager} ngeo-olcs-manager The OL-Cesium manager.

ngdoc

  component

ngname

  ngeoOlcsControls3d

### controller

controller: Controller = Controller

- Defined in src/olcs/controls3d.js:336

### templateUrl

templateUrl: ngeoOlcsControls3dTemplateUrlInjectable = ngeoOlcsControls3dTemplateUrlInjectable

- Defined in src/olcs/controls3d.js:337

### bindings

bindings: object

- Defined in src/olcs/controls3d.js:331

### maxTilt

maxTilt: string = "<?"

- Defined in src/olcs/controls3d.js:333

### minTilt

minTilt: string = "<?"

- Defined in src/olcs/controls3d.js:332

### ol3dm

ol3dm: string = "<?"

- Defined in src/olcs/controls3d.js:334

### Const permalinkShareComponent

permalinkShareComponent: object

- Defined in contribs/gmf/src/permalink/shareComponent.js:78

Component to display a shortened permalink and share it by email Example:

     <gmf-share></gmf-share>

### controller

controller: string = "GmfShareController"

- Defined in contribs/gmf/src/permalink/shareComponent.js:79

### templateUrl

templateUrl: gmfPermalinkShareTemplateUrl = gmfPermalinkShareTemplateUrl

- Defined in contribs/gmf/src/permalink/shareComponent.js:80

### Const printComponent

printComponent: object

- Defined in contribs/gmf/src/print/component.js:193

Provide a component that display a print panel. This panel is populated with a form corresponding to the capabilities delivered by a GMF print v3 server. If you want to use another template for your print panel, you can see the available layout information in the 'PrintLayoutInfo' classes.

Simple example:

     <gmf-print
       gmf-print-map="::mainCtrl.map"
       gmf-print-active="printActive">
     </gmf-print>

Example with user defined attribute:

     <gmf-print
       gmf-print-map="::mainCtrl.map"
       gmf-print-active="printActive"
       gmf-print-attributes-out="::attributes">
       <div ng-repeat="attribute in ::attributes">
         <div ng-if="attribute.name == 'name'">
           <input ng-model="attribute.value" placeholder="name" />
         </div>
       </div>
     </gmf-print>

Note: The 'print' and 'cancel' functions can also be called via globals events 'gmfStartPrint' and 'gmfCancelPrint'.

Used metadata:

- hiDPILegendImages: The URLs to the hi DPI images used as a legend in the layer tree. For WMS and WMTS layers.
- printNativeAngle: Whether the print should rotate the symbols. For layer groups (only).

htmlattribute

  {import("ol/Map.js").default} gmf-print-map The map.

htmlattribute

  {boolean} gmf-print-active A boolean that informs if the panel is open or not.

ngdoc

  component

ngname

  gmfPrint

### controller

controller: string = "GmfPrintController"

- Defined in contribs/gmf/src/print/component.js:199

### templateUrl

templateUrl: gmfPrintTemplateUrl = gmfPrintTemplateUrl

- Defined in contribs/gmf/src/print/component.js:200

### transclude

transclude: boolean = true

- Defined in contribs/gmf/src/print/component.js:201

### bindings

bindings: object

- Defined in contribs/gmf/src/print/component.js:194

### active

active: string = "=gmfPrintActive"

- Defined in contribs/gmf/src/print/component.js:196

### attributesOut

attributesOut: string = "=?gmfPrintAttributesOut"

- Defined in contribs/gmf/src/print/component.js:197

### map

map: string = "<gmfPrintMap"

- Defined in contribs/gmf/src/print/component.js:195

### Const profileComponent

profileComponent: object

- Defined in contribs/gmf/src/profile/component.js:145

Provide a component that display a profile panel. This profile use the given LineString geometry to request the c2cgeoportal profile.json service. The raster used in the request are the keys of the 'linesconfiguration' object. The 'map' attribute is optional and are only used to display on the map the information that concern the hovered point (in the profile and on the map) of the line. This profile relies on the ngeo.profile (d3) and ngeo.ProfileComponent.

Example:

     <gmf-profile
       gmf-profile-active="ctrl.profileActive"
       gmf-profile-line="ctrl.profileLine"
       gmf-profile-map="::ctrl.map">
     </gmf-profile>

htmlattribute

  {boolean} gmf-profile-active Active the component.

htmlattribute

  {import("ol/geom/LineString.js").default} gmf-profile-line The linestring geometry to use to draw the profile.

htmlattribute

  {import("ol/Map.js").default?} gmf-profile-map An optional map.

htmlattribute

  {import("ol/style/Style.js").default?} gmf-profile-hoverpointstyle Optional style for the 'on Hover' point on the line.

htmlattribute

  {Object<string, *>?} gmf-profile-options Optional options object like {@link import('ngeo/profile/elevationComponent.js').ProfileOptions} but without any mandatory value. Will be passed to the ngeo profile component. Providing 'linesConfiguration', 'distanceExtractor', hoverCallback, outCallback or i18n will override native gmf profile values.

ngdoc

  component

ngname

  gmfProfile

### controller

controller: string = "GmfProfileController as ctrl"

- Defined in contribs/gmf/src/profile/component.js:146

### templateUrl

templateUrl: gmfProfileTemplateUrl = gmfProfileTemplateUrl

- Defined in contribs/gmf/src/profile/component.js:153

### bindings

bindings: object

- Defined in contribs/gmf/src/profile/component.js:147

### active

active: string = "=gmfProfileActive"

- Defined in contribs/gmf/src/profile/component.js:148

### getMapFn

getMapFn: string = "&?gmfProfileMap"

- Defined in contribs/gmf/src/profile/component.js:150

### getOptionsFn

getOptionsFn: string = "&?gmfProfileOptions"

- Defined in contribs/gmf/src/profile/component.js:151

### line

line: string = "=gmfProfileLine"

- Defined in contribs/gmf/src/profile/component.js:149

### Const queryGridComponent

queryGridComponent: object

- Defined in contribs/gmf/src/query/gridComponent.js:127

Provides a component to display results of the {@link import("ngeo/queryResult.js").default} in a grid and shows related features on the map using the {@link import("ngeo/map/FeatureOverlayMgr.js").FeatureOverlayMgr}.

You can override the default component's template by setting the value `gmfDisplayquerygridTemplateUrl`.

Features displayed on the map use a default style but you can override these styles by passing ol.style.Style objects as attributes of this component.

Note: the following ng-class need to be present in the interface
element to display the footer when the grid is active (initially there should be the code for the profile tool):

Example:

     <gmf-displayquerygrid gmf-displayquerygrid-map="ctrl.map"></gmf-displayquerygrid>

htmlattribute

  {boolean} gmf-displayquerygrid-active The active state of the component.

htmlattribute

  {import("ol/Map.js").default} gmf-displayquerygrid-map The map.

ngdoc

  component

ngname

  gmfDisplayquerygrid

### controller

controller: string = "GmfDisplayquerygridController as ctrl"

- Defined in contribs/gmf/src/query/gridComponent.js:128

### templateUrl

templateUrl: gmfDisplayquerygridTemplateUrl = gmfDisplayquerygridTemplateUrl

- Defined in contribs/gmf/src/query/gridComponent.js:133

### bindings

bindings: object

- Defined in contribs/gmf/src/query/gridComponent.js:129

### active

active: string = "=?gmfDisplayquerygridActive"

- Defined in contribs/gmf/src/query/gridComponent.js:130

### getMapFn

getMapFn: string = "&gmfDisplayquerygridMap"

- Defined in contribs/gmf/src/query/gridComponent.js:131

### Const queryWindowComponent

queryWindowComponent: object

- Defined in contribs/gmf/src/query/windowComponent.js:128

Provide a component to display results of the {@link import("ngeo/queryResult.js").default} and shows related features on the map using the {@link import("ngeo/map/FeatureOverlayMgr.js").FeatureOverlayMgr}.

You can override the default component's template by setting the value `gmfDisplayquerywindowTemplateUrl`.

Features displayed on the map use a default style but you can override these styles by passing ol.style.Style objects as attributes of this component.

Example:

     <gmf-displayquerywindow></gmf-displayquerywindow>

htmlattribute

  {boolean} desktop If the component is used in the desktop application.

ngdoc

  component

ngname

  gmfDisplayquerywindow

### controller

controller: string = "GmfDisplayquerywindowController as ctrl"

- Defined in contribs/gmf/src/query/windowComponent.js:129

### templateUrl

templateUrl: gmfDisplayquerywindowTemplateUrl = gmfDisplayquerywindowTemplateUrl

- Defined in contribs/gmf/src/query/windowComponent.js:134

### bindings

bindings: object

- Defined in contribs/gmf/src/query/windowComponent.js:130

### desktop

desktop: string = "=gmfDisplayquerywindowDesktop"

- Defined in contribs/gmf/src/query/windowComponent.js:132

### draggableContainment

draggableContainment: string = "<?gmfDisplayquerywindowDraggableContainment"

- Defined in contribs/gmf/src/query/windowComponent.js:131

### Const rasterWidgetComponent

rasterWidgetComponent: object

- Defined in contribs/gmf/src/raster/component.js:352

Provides a component which encapsulates the elevation component (see above) in a button with dropdown menu to be included in a application directly.

Example:

htmlattribute

  {import("ol/Map.js").default} gmf-elevationwidget-map The map.

htmlattribute

  {boolean} gmf-elevationwidget-active Whether to activate the elevation component.

ngdoc

  component

ngname

  gmfElevationwidget

### controller

controller: string = "gmfElevationwidgetController as ctrl"

- Defined in contribs/gmf/src/raster/component.js:353

### templateUrl

templateUrl: gmfElevationwidgetTemplateUrl = gmfElevationwidgetTemplateUrl

- Defined in contribs/gmf/src/raster/component.js:358

### bindings

bindings: object

- Defined in contribs/gmf/src/raster/component.js:354

### active

active: string = "<gmfElevationwidgetActive"

- Defined in contribs/gmf/src/raster/component.js:356

### map

map: string = "<gmfElevationwidgetMap"

- Defined in contribs/gmf/src/raster/component.js:355

### Const routingFeatureComponent

routingFeatureComponent: object

- Defined in src/routing/RoutingFeatureComponent.js:449

Provides a text input and draw interaction to allow a user to create and modify a ol.Feature (point geometry).

The text input is provided by {@link import("ngeo/nominatimInputComponent.js").default} and includes Nominatim search.

Example:

    <ngeo-routing-feature
        ngeo-routing-feature-map="ctrl.map"
        ngeo-routing-feature-feature="ctrl.feature"
        ngeo-routing-feature-fill-color="#6BE62E"
        ngeo-routing-feature-stroke-color="#4CB01E"
        ngeo-routing-feature-on-change="ctrl.handleChange">

Is used in in the partial of {@link import("ngeo/routingComponent.js").default}.

See the ../examples/routing.html example for a usage sample.

htmlattribute

  {import("ol/Map.js").default} ngeo-routing-feature-map The map.

htmlattribute

  {olFeature<import("ol/geom/Geometry.js").default>} ngeo-routing-feature-feature The feature.

htmlattribute

  {string} ngeo-routing-feature-fill-color The marker fill color.

htmlattribute

  {string} ngeo-routing-feature-stroke-color The marker stroke color.

htmlattribute

  {function(olFeature<import("ol/geom/Geometry.js").default>)} ngeo-routing-feature-on-change Event fired when feature changes.

ngdoc

  directive

ngname

  ngeoRoutingFeature

### controller

controller: Controller = Controller

- Defined in src/routing/RoutingFeatureComponent.js:450

### templateUrl

templateUrl: ngeoRoutingFeatureTemplateUrl = ngeoRoutingFeatureTemplateUrl

- Defined in src/routing/RoutingFeatureComponent.js:458

### bindings

bindings: object

- Defined in src/routing/RoutingFeatureComponent.js:451

### feature

feature: string = "=ngeoRoutingFeatureFeature"

- Defined in src/routing/RoutingFeatureComponent.js:453

### fillColor

fillColor: string = "<?ngeoRoutingFeatureFillColor"

- Defined in src/routing/RoutingFeatureComponent.js:454

### map

map: string = "<ngeoRoutingFeatureMap"

- Defined in src/routing/RoutingFeatureComponent.js:452

### onChange

onChange: string = "=?ngeoRoutingFeatureOnChange"

- Defined in src/routing/RoutingFeatureComponent.js:456

### strokeColor

strokeColor: string = "<?ngeoRoutingFeatureStrokeColor"

- Defined in src/routing/RoutingFeatureComponent.js:455

### Const routingNominatimInputComponent

routingNominatimInputComponent: object

- Defined in src/routing/NominatimInputComponent.js:176

Input form field which provides Nominatim typeahead lookup using {@link import("ngeo/routing/NominatimService.js").default}.

Example:

    <ngeo-nominatim-input
        ngeo-nominatim-input-value="ctrl.label"
        ngeo-nominatim-input-placeholder="type to search"
        ngeo-nominatim-input-on-select="ctrl.onSelect">

Is used in in the partial of {@link import("ngeo/routingFeatureComponent.js").default}.

See the ../examples/routing.html example to see it in action.

htmlattribute

  {function(import('ngeo/routing/NominatimService').NominatimSearchResult)} ngeo-nominatim-input-on-select Event fired when user selects a new suggestion.

htmlattribute

  {string} ngeo-nominatim-input-value Value of input field, will be set to the label of the search result.

htmlattribute

  {string} ngeo-nominatim-input-placeholder Placeholder text, when field is empty.

ngdoc

  directive

ngname

  ngeoNominatimInput

### controller

controller: Controller = Controller

- Defined in src/routing/NominatimInputComponent.js:177

### templateUrl

templateUrl: ngeoRoutingNominatimInputComponentTemplateUrl = ngeoRoutingNominatimInputComponentTemplateUrl

- Defined in src/routing/NominatimInputComponent.js:183

### bindings

bindings: object

- Defined in src/routing/NominatimInputComponent.js:178

### inputValue

inputValue: string = "=?ngeoNominatimInputValue"

- Defined in src/routing/NominatimInputComponent.js:180

### onSelect

onSelect: string = "=?ngeoNominatimInputOnSelect"

- Defined in src/routing/NominatimInputComponent.js:179

### placeholder

placeholder: string = "@?ngeoNominatimInputPlaceholder"

- Defined in src/routing/NominatimInputComponent.js:181

### Const searchComponent

- searchComponent(): IDirective<IScope, JQLite, IAttributes, IController>

- - Defined in src/search/searchDirective.js:56

  Provides the "ngeoSearch" directive, which uses Twitter's typeahead component to change an input text into a search field.

  Example:

       <input type="text"
         ngeo-search="ctrl.typeaheadOptions"
         ngeo-search-datasets="ctrl.typeaheadDatasets"
         ngeo-search-listeners="crtl.typeaheadListeners">

  See our live example: ../examples/search.html

  htmlattribute

    {Twitter.Typeahead.Options} ngeo-search The options.

  htmlattribute

    {Twitter.Typeahead.Dataset[]} ngeo-search-datasets The sources datasets.

  htmlattribute

    {SearchDirectiveListeners} ngeo-search-listeners The listeners.

  nginject
  template

  #### Returns IDirective<IScope, JQLite, IAttributes, IController>

  Directive Definition Object.

### controller

controller: string = "gmfSearchController"

- Defined in contribs/gmf/src/search/component.js:141

### templateUrl

templateUrl: gmfSearchTemplateUrl = gmfSearchTemplateUrl

- Defined in contribs/gmf/src/search/component.js:142

### bindings

bindings: object

- Defined in contribs/gmf/src/search/component.js:133

### additionalListeners

additionalListeners: string = "<gmfSearchListeners"

- Defined in contribs/gmf/src/search/component.js:137

### inputValue

inputValue: string = "=?gmfSearchInputValue"

- Defined in contribs/gmf/src/search/component.js:134

### map

map: string = "<gmfSearchMap"

- Defined in contribs/gmf/src/search/component.js:135

### onInitCallback

onInitCallback: string = "<?gmfSearchOnInit"

- Defined in contribs/gmf/src/search/component.js:138

### searchActionCallback

searchActionCallback: string = "&?gmfSearchAction"

- Defined in contribs/gmf/src/search/component.js:139

### typeaheadOptions

typeaheadOptions: string = "<?gmfSearchOptions"

- Defined in contribs/gmf/src/search/component.js:136

### Const themeSelectorComponent

themeSelectorComponent: object

- Defined in contribs/gmf/src/theme/selectorComponent.js:109

Note that this component works with the {@link import("gmf/layertree/TreeManager.js").LayertreeTreeManager}. Setting the theme will update the "tree" object of this {@link import("gmf/layertree/TreeManager.js").LayertreeTreeManager}.

Example:

     <a href class="btn btn-block btn-primary dropdown-toggle" data-toggle="dropdown">
         <span class="fa fa-grid"></span>
         <span ng-if="mainCtrl.gmfThemeManager.modeFlush">
           <span translate>Theme:</span>
           <b ng-if="!mainCtrl.gmfThemeManager.getThemeName()" translate>Loading..</b>
           <b ng-if="mainCtrl.gmfThemeManager.getThemeName()">
             {{mainCtrl.gmfThemeManager.getThemeName()|translate}}
           </b>
         </span>
         <span ng-if="!mainCtrl.gmfThemeManager.modeFlush">
           <b ng-if="!mainCtrl.gmfThemeManager.themeName" translate>Themes</b>
         </span>
     </a>
     <gmf-themeselector class="dropdown-menu"
         gmf-themeselector-currenttheme="mainCtrl.theme"
         gmf-themeselector-filter="::mainCtrl.filter">
     </gmf-themeselector>

The theme selector can operate in a 'flush' (as above) or 'add' mode. For more information about these modes, refer to the documentation of {@link import("gmf/layertree/TreeManager.js").LayertreeTreeManager}.

To use the 'add' mode just add the constants:

gmfTreeManagerModeFlush: false

htmlattribute

  {Function} gmf-themeselector-filter The themes filter.

### controller

controller: string = "gmfThemeselectorController"

- Defined in contribs/gmf/src/theme/selectorComponent.js:113

### templateUrl

templateUrl: gmfThemeSelectorTemplateUrl = gmfThemeSelectorTemplateUrl

- Defined in contribs/gmf/src/theme/selectorComponent.js:114

### bindings

bindings: object

- Defined in contribs/gmf/src/theme/selectorComponent.js:110

### filter

filter: string = "<gmfThemeselectorFilter"

- Defined in contribs/gmf/src/theme/selectorComponent.js:111

Generated using TypeDoc