/** * @typedef {function(string): PrintService} CreatePrint */ /** * Provides a function to create ngeo.print.Service objects used to * interact with MapFish Print v3 services. * * ngeo.print.Service objects expose the following methods: * * - createSpec: create a report specification object * - createReport: send a create report request * - getStatus: get the status of a report * - getReportUrl: get the URL of a report * - getCapabilities: get the capabilities of the server * * * let printBaseUrl = 'http://example.com/print'; * let print = new ngeo.print.Service(printBaseUrl); * * let scale = 5000; * let dpi = 72; * let layout = 'A4 portrait'; * let format = 'pdf'; * let reportSpec = print.createSpec(map, scale, dpi, layout, format, { * 'title': 'A title for my report', * 'rotation': 45 // degree * }); * * See our live example: [../examples/mapfishprint.html](../examples/mapfishprint.html) * * TODO and limitations: * * - createSpec should also accept a bbox instead of a center and a scale. * - Add support for ol.style.RegularShape. MapFish Print supports symbols * like crosses, stars and squares, so printing regular shapes should be * possible. * - ol.style.Icon may use a sprite image, and offsets to define to rectangle * to use within the sprite. This type of icons won't be printed correctly * as MapFish Print does not support sprite icons. * * @class * @param {string} url URL to MapFish print web service. * @param {angular.IHttpService} $http Angular $http service. * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext service. * @param {import('ngeo/map/LayerHelper').LayerHelper} ngeoLayerHelper Ngeo Layer Helper service. * @hidden */ export function PrintService(url: string, $http: angular.IHttpService, gettextCatalog: angular.gettext.gettextCatalog, ngeoLayerHelper: import("ngeo/map/LayerHelper").LayerHelper): void; export class PrintService { /** * @typedef {function(string): PrintService} CreatePrint */ /** * Provides a function to create ngeo.print.Service objects used to * interact with MapFish Print v3 services. * * ngeo.print.Service objects expose the following methods: * * - createSpec: create a report specification object * - createReport: send a create report request * - getStatus: get the status of a report * - getReportUrl: get the URL of a report * - getCapabilities: get the capabilities of the server * * * let printBaseUrl = 'http://example.com/print'; * let print = new ngeo.print.Service(printBaseUrl); * * let scale = 5000; * let dpi = 72; * let layout = 'A4 portrait'; * let format = 'pdf'; * let reportSpec = print.createSpec(map, scale, dpi, layout, format, { * 'title': 'A title for my report', * 'rotation': 45 // degree * }); * * See our live example: [../examples/mapfishprint.html](../examples/mapfishprint.html) * * TODO and limitations: * * - createSpec should also accept a bbox instead of a center and a scale. * - Add support for ol.style.RegularShape. MapFish Print supports symbols * like crosses, stars and squares, so printing regular shapes should be * possible. * - ol.style.Icon may use a sprite image, and offsets to define to rectangle * to use within the sprite. This type of icons won't be printed correctly * as MapFish Print does not support sprite icons. * * @class * @param {string} url URL to MapFish print web service. * @param {angular.IHttpService} $http Angular $http service. * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext service. * @param {import('ngeo/map/LayerHelper').LayerHelper} ngeoLayerHelper Ngeo Layer Helper service. * @hidden */ constructor(url: string, $http: angular.IHttpService, gettextCatalog: angular.gettext.gettextCatalog, ngeoLayerHelper: import("ngeo/map/LayerHelper").LayerHelper); /** * @type {string} */ url_: string; /** * @type {angular.IHttpService} */ $http_: angular.IHttpService; /** * @type {angular.gettext.gettextCatalog} */ gettextCatalog_: angular.gettext.gettextCatalog; /** * @type {import('ngeo/map/LayerHelper').LayerHelper} */ ngeoLayerHelper_: import("ngeo/map/LayerHelper").LayerHelper; /** * @type {import('ngeo/print/VectorEncoder').default} */ vectorEncoder: import("ngeo/print/VectorEncoder").default; /** * @type {boolean} */ printNativeAngle_: boolean; /** * @type {number} */ goodnessOfFit_: number; /** * Cancel a report. * * @param {string} ref Print report reference. * @param {angular.IRequestShortcutConfig} [opt_httpConfig] $http config object. * @returns {angular.IHttpPromise} HTTP promise. */ cancel(ref: string, opt_httpConfig?: angular.IRequestShortcutConfig): angular.IHttpPromise; /** * Create a report specification. * * @param {import('ol/Map').default} map Map. * @param {number} scale Scale. * @param {number} rotation Rotation. * @param {number} dpi DPI. * @param {string} layout Layout. * @param {string} format Formats. * @param {Object} customAttributes Custom attributes. * @param {string} [email] Email to send the file to. * @param {number} [goodnessOfFit] Goodness of fit. * @returns {import('ngeo/print/mapfish-print-v3').MapFishPrintSpec} The print spec. */ createSpec(map: import("ol/Map").default, scale: number, rotation: number, dpi: number, layout: string, format: string, customAttributes: { [x: string]: any; }, email?: string, goodnessOfFit?: number): import("ngeo/print/mapfish-print-v3").MapFishPrintSpec; /** * @param {import('ol/Map').default} map Map. * @param {number} scale Scale. * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintMap} object Object. * @param {number} destinationPrintDpi The destination print DPI. */ encodeMap_(map: import("ol/Map").default, scale: number, object: import("ngeo/print/mapfish-print-v3").MapFishPrintMap, destinationPrintDpi: number): void; /** * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintLayer[]} arr Array. * @param {import('ol/layer/Base').default} layer Layer. * @param {number} resolution Resolution. * @param {number} destinationPrintDpi The destination print DPI. */ encodeLayer(arr: import("ngeo/print/mapfish-print-v3").MapFishPrintLayer[], layer: import("ol/layer/Base").default, resolution: number, destinationPrintDpi: number): void; /** * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintLayer[]} arr Array. * @param {olLayerVector>} layer Layer. * @param {number} resolution Resolution. * @param {number} destinationPrintDpi The destination print DPI. */ encodeVectorLayer(arr: import("ngeo/print/mapfish-print-v3").MapFishPrintLayer[], layer: olLayerVector>, resolution: number, destinationPrintDpi: number): void; /** * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintLayer[]} arr Array. * @param {import('ol/layer/Image').default} layer Layer. */ encodeImageLayer_(arr: import("ngeo/print/mapfish-print-v3").MapFishPrintLayer[], layer: import("ol/layer/Image").default): void; /** * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintLayer[]} arr Array. * @param {import('ol/layer/Image').default} layer Layer. */ encodeImageWmsLayer_(arr: import("ngeo/print/mapfish-print-v3").MapFishPrintLayer[], layer: import("ol/layer/Image").default): void; /** * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintLayer[]} arr Array. * @param {import('ol/layer/Image').default|import('ol/layer/WebGLTile').default} layer The layer. * @param {string} url URL of the WMS server. * @param {Object} params URL parameters */ encodeWmsLayer_(arr: import("ngeo/print/mapfish-print-v3").MapFishPrintLayer[], layer: import("ol/layer/Image").default | import("ol/layer/WebGLTile").default, url: string, params: { [x: string]: string; }): void; /** * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintLayer[]} arr Array. * @param {import('ol/layer/WebGLTile').default} layer Layer. */ encodeTileLayer_(arr: import("ngeo/print/mapfish-print-v3").MapFishPrintLayer[], layer: import("ol/layer/WebGLTile").default): void; /** * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintLayer[]} arr Array. * @param {import('ol/layer/WebGLTile').default} layer Layer. */ encodeTileWmtsLayer_(arr: import("ngeo/print/mapfish-print-v3").MapFishPrintLayer[], layer: import("ol/layer/WebGLTile").default): void; /** * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintLayer[]} arr Array. * @param {import('ol/layer/WebGLTile').default} layer Layer. */ encodeTileWmsLayer_(arr: import("ngeo/print/mapfish-print-v3").MapFishPrintLayer[], layer: import("ol/layer/WebGLTile").default): void; /** * Return the WMTS URL to use in the print spec. * * @param {import('ol/source/WMTS').default} source The WMTS source. * @returns {string} URL. */ getWmtsUrl_(source: import("ol/source/WMTS").default): string; /** * Return an opacity value for the specified layer. * * @param {import('ol/layer/Base').default} layer Layer. * @returns {number} opacity Opacity value. */ getOpacityOrInherited_(layer: import("ol/layer/Base").default): number; /** * Send a create report request to the MapFish Print service. * * @param {import('ngeo/print/mapfish-print-v3').MapFishPrintSpec} printSpec Print specification. * @param {angular.IRequestShortcutConfig} [opt_httpConfig] $http config object. * @returns {angular.IHttpPromise} HTTP promise. */ createReport(printSpec: import("ngeo/print/mapfish-print-v3").MapFishPrintSpec, opt_httpConfig?: angular.IRequestShortcutConfig): angular.IHttpPromise; /** * Get the status of a report. * * @param {string} ref Print report reference. * @param {angular.IRequestShortcutConfig} [opt_httpConfig] $http config object. * @returns {angular.IHttpPromise} HTTP promise. */ getStatus(ref: string, opt_httpConfig?: angular.IRequestShortcutConfig): angular.IHttpPromise; /** * Get the URL of a report. * * @param {string} ref Print report reference. * @returns {string} The report URL for this ref. */ getReportUrl(ref: string): string; /** * Get the print capabilities from MapFish Print. * * @param {angular.IRequestShortcutConfig} [opt_httpConfig] $http config object. * @returns {angular.IHttpPromise} HTTP promise. */ getCapabilities(opt_httpConfig?: angular.IRequestShortcutConfig): angular.IHttpPromise; } export namespace PrintService { let $inject: string[]; } /** * @param {angular.IHttpService} $http Angular $http service. * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext service. * @param {import('ngeo/map/LayerHelper').LayerHelper} ngeoLayerHelper Ngeo Layer Helper. * @returns {CreatePrint} The function to create a print service. * @ngdoc service * @ngname ngeoCreatePrint * @hidden */ export function createPrintServiceFactory($http: angular.IHttpService, gettextCatalog: angular.gettext.gettextCatalog, ngeoLayerHelper: import("ngeo/map/LayerHelper").LayerHelper): CreatePrint; export namespace createPrintServiceFactory { let $inject_1: string[]; export { $inject_1 as $inject }; } export default myModule; export type CreatePrint = (arg0: string) => PrintService; import angular from 'angular'; import olLayerVector from 'ol/layer/Vector'; /** * @type {angular.IModule} * @hidden */ declare const myModule: angular.IModule;