@eliorar/angular-cesium
Version:
Angular library for working with Cesium.
44 lines • 4.4 kB
JavaScript
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==