/** * @param {angular.IScope} $scope Angular scope. * @param {angular.IHttpService} $http Angular http service. * @param {JQuery} $element Element. * @param {angular.IFilterService} $filter Angular filter * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext catalog. * @param {string} gmfProfileJsonUrl URL of GMF service JSON profile. * @param {import('gmf/options').gmfProfileOptions} gmfProfileOptions The options. * @param {import('ngeo/options').ngeoProfileOptions} ngeoProfileOptions The options. * @class * @hidden * @ngdoc controller * @ngname GmfProfileController */ export function ProfileController($scope: angular.IScope, $http: angular.IHttpService, $element: JQuery, $filter: angular.IFilterService, gettextCatalog: angular.gettext.gettextCatalog, gmfProfileJsonUrl: string, gmfProfileOptions: import("gmf/options").gmfProfileOptions, ngeoProfileOptions: import("ngeo/options").ngeoProfileOptions): void; export class ProfileController { /** * @param {angular.IScope} $scope Angular scope. * @param {angular.IHttpService} $http Angular http service. * @param {JQuery} $element Element. * @param {angular.IFilterService} $filter Angular filter * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext catalog. * @param {string} gmfProfileJsonUrl URL of GMF service JSON profile. * @param {import('gmf/options').gmfProfileOptions} gmfProfileOptions The options. * @param {import('ngeo/options').ngeoProfileOptions} ngeoProfileOptions The options. * @class * @hidden * @ngdoc controller * @ngname GmfProfileController */ constructor($scope: angular.IScope, $http: angular.IHttpService, $element: JQuery, $filter: angular.IFilterService, gettextCatalog: angular.gettext.gettextCatalog, gmfProfileJsonUrl: string, gmfProfileOptions: import("gmf/options").gmfProfileOptions, ngeoProfileOptions: import("ngeo/options").ngeoProfileOptions); options: import("ngeo/options").gmfProfileOptions; ngeoOptions: import("ngeo/options").ngeoProfileOptions; /** * @type {angular.IScope} */ $scope_: angular.IScope; /** * @type {angular.IHttpService} */ $http_: angular.IHttpService; /** * @type {JQuery} */ $element_: JQuery; /** * @type {angular.IFilterService} */ $filter_: angular.IFilterService; /** * @type {angular.gettext.gettextCatalog} */ gettextCatalog_: angular.gettext.gettextCatalog; /** * @type {import('ngeo/map/FeatureOverlay').FeatureOverlay} */ pointHoverOverlay_: import("ngeo/map/FeatureOverlay").FeatureOverlay; /** * @type {string} */ gmfProfileJsonUrl_: string; /** * @type {import('ngeo/download/Csv').DownloadCsvService} */ ngeoCsvDownload_: import("ngeo/download/Csv").DownloadCsvService; /** * @type {?import('ol/Map').default} */ map_: import("ol/Map").default | null; /** * @type {string[]} */ layersNames_: string[]; /** * @type {number} */ nbPoints_: number; /** * @type {?import('ol/geom/LineString').default} */ line: import("ol/geom/LineString").default | null; /** * @type {ProfileElement[]} */ profileData: ProfileElement[]; /** * @type {ProfileHoverPointInformations} */ currentPoint: ProfileHoverPointInformations; /** * Distance to highlight on the profile. (Property used in ngeo.Profile.) * * @type {number} */ profileHighlight: number; /** * Overlay to show the measurement. * * @type {?import('ol/Overlay').default} */ measureTooltip_: import("ol/Overlay").default | null; /** * The measure tooltip element. * * @type {?HTMLElement} */ measureTooltipElement_: HTMLElement | null; /** * @type {olFeature} */ snappedPoint_: olFeature; /** * @type {import('ngeo/profile/elevationComponent').I18n} */ profileLabels_: import("ngeo/profile/elevationComponent").I18n; /** * @type {?import('ngeo/profile/elevationComponent').ProfileOptions} */ profileOptions: import("ngeo/profile/elevationComponent").ProfileOptions | null; /** * @type {boolean} */ active: boolean; /** * @type {?import('ol/events').EventsKey} */ pointerMoveKey_: import("ol/events").EventsKey | null; /** * @type {boolean} */ isErrored: boolean; /** * @type {boolean} */ isLoading: boolean; /** * @type {function():import('ol/Map').default} */ getMapFn: () => import("ol/Map").default; getOptionsFn: () => {}; /** * Init the controller */ $onInit(): void; update_(): void; updateEventsListening_(): void; /** * Return the distance between the beginning of the line and the given point. * The point must be on the line. If not, this function will return the total * length of the line. * * @param {import('ol/coordinate').Coordinate} pointOnLine A point on the given line. * @returns {number} A distance. */ getDistanceOnALine_(pointOnLine: import("ol/coordinate").Coordinate): number; /** * @typedef {Object} Point * @property {number} x * @property {number} y */ /** * @param {unknown} pointObject Point. * @param {number} dist distance on the line. * @param {string} xUnits X units label. * @param {Object} elevationsRef Elevations references. * @param {string} yUnits Y units label. */ hoverCallback_(pointObject: unknown, dist: number, xUnits: string, elevationsRef: { [x: string]: number; }, yUnits: string): void; outCallback_(): void; /** * @returns {string} A text formatted to a tooltip. */ getTooltipHTML_(): string; /** * Creates a new 'hover' tooltip */ createMeasureTooltip_(): void; /** * Destroy the 'hover' tooltip */ removeMeasureTooltip_(): void; /** * Return the styler value of a ProfileLineConfiguration. * * @param {string} layerName name of the elevation layer. * @returns {object} The object representation of the style. */ getStyle(layerName: string): object; /** * Return a copy of the existing layer names. * * @returns {string[]} The names of layers. */ getLayersNames(): string[]; /** * @param {string} layerName name of the elevation layer. * @returns {function(ProfileElement): number} Z extractor function. */ getZFactory_(layerName: string): (arg0: ProfileElement) => number; /** * Extractor for the 'dist' value in profileData. * * @param {ProfileElement} item The item. * @returns {number} The distance. */ getDist_(item: ProfileElement): number; /** * Request the profile. */ getJsonProfile_(): void; /** * @param {angular.IHttpResponse} resp Response. */ getProfileDataSuccess_(resp: angular.IHttpResponse): void; /** * @param {angular.IHttpResponse} resp Response. */ getProfileDataError_(resp: angular.IHttpResponse): void; /** * Request the csv profile with the current profile data. */ downloadCsv(): void; } export namespace ProfileController { let $inject: string[]; } export default myModule; export type ProfileElement = { dist: number; x: number; y: number; values: { [x: string]: number; }; }; /** * The eesult of the profile service */ export type ProfileServiceResult = { profile: ProfileElement[]; }; /** * Information to display for a given point in the profile. The point is * typically given by the profile's hover. */ export type ProfileHoverPointInformations = { /** * Coordinate of the point. */ coordinate?: import("ol/coordinate").Coordinate; /** * distance of the point on the line. Can be in meters or kilometers. */ distance?: number; /** * Elevations of the point (example: * {aster: 556.5, srtm: 560}). */ elevations?: { [x: string]: number; }; /** * Units of the x axis. */ xUnits?: string; /** * Units of the y axis. */ yUnits?: string; }; export type Point = { x: number; y: number; }; import angular from 'angular'; import olFeature from 'ol/Feature'; /** * @typedef {Object} ProfileElement * @property {number} dist * @property {number} x * @property {number} y * @property {Object} values */ /** * @typedef {Object} ProfileServiceResult * The eesult of the profile service * @property {ProfileElement[]} profile */ /** * Information to display for a given point in the profile. The point is * typically given by the profile's hover. * * @typedef {Object} ProfileHoverPointInformations * @property {import('ol/coordinate').Coordinate} [coordinate] Coordinate of the point. * @property {number} [distance] distance of the point on the line. Can be in meters or kilometers. * @property {Object} [elevations] Elevations of the point (example: * {aster: 556.5, srtm: 560}). * @property {string} [xUnits] Units of the x axis. * @property {string} [yUnits] Units of the y axis. */ /** * @type {angular.IModule} * @hidden */ declare const myModule: angular.IModule;