UNPKG

ol-cesium

Version:

OpenLayers Cesium integration library

78 lines 4.86 kB
let _imageRenderingPixelatedSupported = undefined; let _imageRenderingValue = undefined; /** * https://caniuse.com/mdn-css_properties_image-rendering_pixelated * @return whether the browser supports */ export function supportsImageRenderingPixelated() { if (_imageRenderingPixelatedSupported === undefined) { const canvas = document.createElement('canvas'); canvas.setAttribute('style', 'image-rendering: -moz-crisp-edges; image-rendering: crisp-edges; image-rendering: pixelated;'); // canvas.style.imageRendering will be undefined, null or an // empty string on unsupported browsers. const imageRenderingValue = canvas.style.imageRendering; _imageRenderingPixelatedSupported = !!imageRenderingValue; if (_imageRenderingPixelatedSupported) { _imageRenderingValue = imageRenderingValue; } } return _imageRenderingPixelatedSupported; } /** * The value supported by thie browser for the CSS property "image-rendering" * @return {string} */ export function imageRenderingValue() { supportsImageRenderingPixelated(); return _imageRenderingValue || ''; } /** * Return the projection of the source that Cesium should use. * * @param source Source. * @return The projection of the source. */ export function getSourceProjection(source) { return source.get('olcs.projection') || source.getProjection(); } /** * Counter for getUid. * @type {number} */ let uidCounter_ = 0; /** * Gets a unique ID for an object. This mutates the object so that further calls * with the same object as a parameter returns the same value. Unique IDs are generated * as a strictly increasing sequence. Adapted from goog.getUid. Similar to OL getUid. * * @param obj The object to get the unique ID for. * @return The unique ID for the object. */ export function getUid(obj) { return obj.olcs_uid || (obj.olcs_uid = ++uidCounter_); } export function waitReady(object) { const o = object; const p = o.readyPromise; if (p) { return p; } if (o.ready !== undefined) { if (o.ready) { return Promise.resolve(object); } return new Promise((resolve, _) => { // FIXME: this is crazy // alternative: intercept _ready = true // altnerative: pass a timeout const stopper = setInterval(() => { if (o.ready) { clearInterval(stopper); resolve(object); } }, 20); }); } return Promise.reject('Not a readyable object'); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbGNzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsSUFBSSxpQ0FBaUMsR0FBWSxTQUFTLENBQUM7QUFDM0QsSUFBSSxvQkFBb0IsR0FBVyxTQUFTLENBQUM7QUFHN0M7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQjtJQUM3QyxJQUFJLGlDQUFpQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3BELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsOEZBQThGLENBQUMsQ0FBQztRQUM3SCw0REFBNEQ7UUFDNUQsd0NBQXdDO1FBQ3hDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDeEQsaUNBQWlDLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1FBQzFELElBQUksaUNBQWlDLEVBQUUsQ0FBQztZQUN0QyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8saUNBQWlDLENBQUM7QUFDM0MsQ0FBQztBQUdEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsK0JBQStCLEVBQUUsQ0FBQztJQUNsQyxPQUFPLG9CQUFvQixJQUFJLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBYztJQUNoRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQWUsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDL0UsQ0FBQztBQUdEOzs7R0FHRztBQUNILElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztBQUVwQjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxHQUFRO0lBQzdCLE9BQU8sR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBTyxNQUFZO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLE1BQWEsQ0FBQztJQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDTixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsdUJBQXVCO1lBQ3ZCLHVDQUF1QztZQUN2Qyw4QkFBOEI7WUFDOUIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ1osYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7WUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUNsRCxDQUFDIn0=