UNPKG

@eliorar/angular-cesium

Version:

Angular library for working with Cesium.

44 lines 4.4 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "../cesium/cesium.service"; /** * Take screenshot of your cesium globe. * * usage: * ```typescript * // get base 64 data url * const dataUrl = screenshotService.getMapScreenshotDataUrl(); * * // or download as png * screenshotService.downloadMapScreenshot('my-map.png'); * * ``` * */ export class ScreenshotService { constructor(cesiumService) { this.cesiumService = cesiumService; } getMapScreenshotDataUrlBase64() { const canvas = this.cesiumService.getCanvas(); return canvas.toDataURL(); } downloadMapScreenshot(filename = 'map.png') { const dataUrl = this.getMapScreenshotDataUrlBase64(); this.downloadURI(dataUrl, filename); } downloadURI(uri, name) { const link = document.createElement('a'); link.download = name; link.href = uri; document.body.appendChild(link); link.click(); document.body.removeChild(link); } } ScreenshotService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ScreenshotService, deps: [{ token: i1.CesiumService }], target: i0.ɵɵFactoryTarget.Injectable }); ScreenshotService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ScreenshotService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ScreenshotService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.CesiumService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuc2hvdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jZXNpdW0vc3JjL2xpYi9hbmd1bGFyLWNlc2l1bS9zZXJ2aWNlcy9zY3JlZW5zaG90L3NjcmVlbnNob3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFHekM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDaEQsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFHRCxxQkFBcUIsQ0FBQyxRQUFRLEdBQUcsU0FBUztRQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQVcsRUFBRSxJQUFZO1FBQzNDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7OEdBdEJVLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDZXNpdW1TZXJ2aWNlfSBmcm9tICcuLi9jZXNpdW0vY2VzaXVtLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRha2Ugc2NyZWVuc2hvdCBvZiB5b3VyIGNlc2l1bSBnbG9iZS5cbiAqXG4gKiB1c2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIGdldCBiYXNlIDY0IGRhdGEgdXJsXG4gKiBjb25zdCBkYXRhVXJsID0gc2NyZWVuc2hvdFNlcnZpY2UuZ2V0TWFwU2NyZWVuc2hvdERhdGFVcmwoKTtcbiAqXG4gKiAvLyBvciBkb3dubG9hZCBhcyBwbmdcbiAqIHNjcmVlbnNob3RTZXJ2aWNlLmRvd25sb2FkTWFwU2NyZWVuc2hvdCgnbXktbWFwLnBuZycpO1xuICpcbiAqIGBgYFxuICpcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjcmVlbnNob3RTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZXNpdW1TZXJ2aWNlOiBDZXNpdW1TZXJ2aWNlKSB7XG4gIH1cblxuICBnZXRNYXBTY3JlZW5zaG90RGF0YVVybEJhc2U2NCgpIHtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNlc2l1bVNlcnZpY2UuZ2V0Q2FudmFzKCk7XG4gICAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwoKTtcbiAgfVxuXG5cbiAgZG93bmxvYWRNYXBTY3JlZW5zaG90KGZpbGVuYW1lID0gJ21hcC5wbmcnKSB7XG4gICAgY29uc3QgZGF0YVVybCA9IHRoaXMuZ2V0TWFwU2NyZWVuc2hvdERhdGFVcmxCYXNlNjQoKTtcbiAgICB0aGlzLmRvd25sb2FkVVJJKGRhdGFVcmwsIGZpbGVuYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgZG93bmxvYWRVUkkodXJpOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5kb3dubG9hZCA9IG5hbWU7XG4gICAgbGluay5ocmVmID0gdXJpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgbGluay5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gIH1cbn1cbiJdfQ==