This avoids to have to many redundant identifier definitions for each projection and ensure to cover most of the existing srsNames
38 lines
775 B
JavaScript
38 lines
775 B
JavaScript
/**
|
|
* @module ol/proj/projections
|
|
*/
|
|
|
|
/**
|
|
* @type {Object<string, import("./Projection.js").default>}
|
|
*/
|
|
let cache = {};
|
|
|
|
/**
|
|
* Clear the projections cache.
|
|
*/
|
|
export function clear() {
|
|
cache = {};
|
|
}
|
|
|
|
/**
|
|
* Get a cached projection by code.
|
|
* @param {string} code The code for the projection.
|
|
* @return {import("./Projection.js").default} The projection (if cached).
|
|
*/
|
|
export function get(code) {
|
|
return (
|
|
cache[code] ||
|
|
cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\w+)$/, 'EPSG:$3')] ||
|
|
null
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Add a projection to the cache.
|
|
* @param {string} code The projection code.
|
|
* @param {import("./Projection.js").default} projection The projection to cache.
|
|
*/
|
|
export function add(code, projection) {
|
|
cache[code] = projection;
|
|
}
|