UNPKG

47.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"uriproj.src.js","sources":["node_modules/whatwg-fetch/fetch.js","../../../../../\u0000babelHelpers","src/index.js"],"sourcesContent":["(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var list = this.map[name]\n if (!list) {\n list = []\n this.map[name] = list\n }\n list.push(value)\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n var values = this.map[normalizeName(name)]\n return values ? values[0] : null\n }\n\n Headers.prototype.getAll = function(name) {\n return this.map[normalizeName(name)] || []\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = [normalizeValue(value)]\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n Object.getOwnPropertyNames(this.map).forEach(function(name) {\n this.map[name].forEach(function(value) {\n callback.call(thisArg, value, name, this)\n }, this)\n }, this)\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n reader.readAsArrayBuffer(blob)\n return fileReaderReady(reader)\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n reader.readAsText(blob)\n return fileReaderReady(reader)\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (!body) {\n this._bodyText = ''\n } else if (support.arrayBuffer && ArrayBuffer.prototype.isPrototypeOf(body)) {\n // Only support ArrayBuffers for POST method.\n // Receiving ArrayBuffers happens via Blobs, instead.\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n } else {\n this.text = function() {\n var rejected = consumed(this)\n return rejected ? rejected : Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n if (Request.prototype.isPrototypeOf(input)) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = input\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this)\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function headers(xhr) {\n var head = new Headers()\n var pairs = (xhr.getAllResponseHeaders() || '').trim().split('\\n')\n pairs.forEach(function(header) {\n var split = header.trim().split(':')\n var key = split.shift().trim()\n var value = split.join(':').trim()\n head.append(key, value)\n })\n return head\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText\n this.headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request\n if (Request.prototype.isPrototypeOf(input) && !init) {\n request = input\n } else {\n request = new Request(input, init)\n }\n\n var xhr = new XMLHttpRequest()\n\n function responseURL() {\n if ('responseURL' in xhr) {\n return xhr.responseURL\n }\n\n // Avoid security warnings on getResponseHeader when not allowed by CORS\n if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {\n return xhr.getResponseHeader('X-Request-URL')\n }\n\n return\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: headers(xhr),\n url: responseURL()\n }\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","var babelHelpers = {};\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n};\n\nexport var jsx = function () {\n var REACT_ELEMENT_TYPE = typeof Symbol === \"function\" && Symbol.for && Symbol.for(\"react.element\") || 0xeac7;\n return function createRawReactElement(type, props, key, children) {\n var defaultProps = type && type.defaultProps;\n var childrenLength = arguments.length - 3;\n\n if (!props && childrenLength !== 0) {\n props = {};\n }\n\n if (props && defaultProps) {\n for (var propName in defaultProps) {\n if (props[propName] === void 0) {\n props[propName] = defaultProps[propName];\n }\n }\n } else if (!props) {\n props = defaultProps || {};\n }\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 3];\n }\n\n props.children = childArray;\n }\n\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key === undefined ? null : '' + key,\n ref: null,\n props: props,\n _owner: null\n };\n };\n}();\n\nexport var asyncToGenerator = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n return step(\"next\", value);\n }, function (err) {\n return step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};\n\nexport var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nexport var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nexport var defineEnumerableProperties = function (obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if (\"value\" in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n\n return obj;\n};\n\nexport var defaults = function (obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n};\n\nexport var defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexport var get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nexport var inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar _instanceof = function (left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n};\n\nexport var interopRequireDefault = function (obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n};\n\nexport var interopRequireWildcard = function (obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n};\n\nexport var newArrowCheck = function (innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError(\"Cannot instantiate an arrow function\");\n }\n};\n\nexport var objectDestructuringEmpty = function (obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure undefined\");\n};\n\nexport var objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nexport var possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nexport var selfGlobal = typeof global === \"undefined\" ? self : global;\n\nexport var set = function set(object, property, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent !== null) {\n set(parent, property, value, receiver);\n }\n } else if (\"value\" in desc && desc.writable) {\n desc.value = value;\n } else {\n var setter = desc.set;\n\n if (setter !== undefined) {\n setter.call(receiver, value);\n }\n }\n\n return value;\n};\n\nexport var slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nexport var slicedToArrayLoose = function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n var _arr = [];\n\n for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n _arr.push(_step.value);\n\n if (i && _arr.length === i) break;\n }\n\n return _arr;\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n};\n\nexport var taggedTemplateLiteral = function (strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n};\n\nexport var taggedTemplateLiteralLoose = function (strings, raw) {\n strings.raw = raw;\n return strings;\n};\n\nexport var temporalRef = function (val, name, undef) {\n if (val === undef) {\n throw new ReferenceError(name + \" is not defined - temporal dead zone\");\n } else {\n return val;\n }\n};\n\nexport var temporalUndefined = {};\n\nexport var toArray = function (arr) {\n return Array.isArray(arr) ? arr : Array.from(arr);\n};\n\nexport var toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\nbabelHelpers;\n\nexport { _typeof as typeof, _extends as extends, _instanceof as instanceof }","import 'whatwg-fetch'\r\nimport proj4 from 'proj4'\r\n\r\nconst ROOT_PREFIX = 'http://www.opengis.net/def/crs/'\r\nconst OGC_PREFIX = ROOT_PREFIX + 'OGC/'\r\nconst EPSG_PREFIX = ROOT_PREFIX + 'EPSG/0/'\r\n\r\n/**\r\n * @typedef {Object} Projection\r\n * @property {function(lonlat: Array<number>): Array<number>} forward\r\n * Transforms a geographic WGS84 [longitude, latitude] coordinate to an [x, y] projection coordinate.\r\n * @property {function(xy: Array<number>): Array<number>} inverse\r\n * Transforms an [x, y] projection coordinate to a geographic WGS84 [longitude, latitude] coordinate.\r\n */\r\n\r\n// a cache of URI string -> Projection object mappings\r\nlet projCache = {}\r\n\r\n// work-arounds for incorrect epsg.io / proj4 behaviour\r\nlet needsAxesReordering = {\r\n [EPSG_PREFIX + 4326]: true // proj4 is [lon,lat], we need [lat,lon]\r\n}\r\n\r\n// store some built-in projections which are not available on epsg.io\r\nlet LONLAT = proj4('+proj=longlat +datum=WGS84 +no_defs')\r\nset(OGC_PREFIX + '1.3/CRS84', LONLAT)\r\nset(EPSG_PREFIX + 4979, reverseAxes(LONLAT))\r\n\r\n/**\r\n * Returns a stored {@link Projection} for a given URI, or {@link undefined} if no {@link Projection} is stored for that URI.\r\n * \r\n * @param {string} crsUri The CRS URI for which to return a {@link Projection}.\r\n * @return {Projection|undefined} A {@link Projection} object, or {@link undefined} if not stored by {@link load} or {@link set}.\r\n * \r\n * @example\r\n * // has to be stored previously via load() or set()\r\n * var proj = uriproj.get('http://www.opengis.net/def/crs/EPSG/0/27700')\r\n * var [longitude, latitude] = [-1.54, 55.5]\r\n * var [easting,northing] = proj.forward([longitude, latitude])\r\n */\r\nexport function get (crsUri) {\r\n return projCache[crsUri]\r\n}\r\n\r\n/**\r\n * Returns a {@link Promise} that succeeds with an already stored {@link Projection} or, if not stored,\r\n * that remotely loads the {@link Projection} (currently using https://epsg.io), stores it, and then succeeds with it.\r\n * \r\n * @param {string} crsUri The CRS URI for which to return a projection.\r\n * @return {Promise<Projection,Error>} A {@link Promise} object succeeding with a {@link Projection} object,\r\n * and failing with an {@link Error} object in case of network or PROJ.4 parsing problems.\r\n * \r\n * @example <caption>Loading a single projection</caption>\r\n * uriproj.load('http://www.opengis.net/def/crs/EPSG/0/27700').then(proj => {\r\n * var [longitude, latitude] = [-1.54, 55.5]\r\n * var [easting,northing] = proj.forward([longitude, latitude])\r\n * })\r\n * \r\n * @example <caption>Loading multiple projections</caption>\r\n * var uris = [\r\n * 'http://www.opengis.net/def/crs/EPSG/0/27700',\r\n * 'http://www.opengis.net/def/crs/EPSG/0/7376',\r\n * 'http://www.opengis.net/def/crs/EPSG/0/7375']\r\n * Promise.all(uris.map(uriproj.load)).then(projs => {\r\n * // all projections are loaded and stored now\r\n * \r\n * // get the first projection\r\n * var proj1 = projs[0]\r\n * // or:\r\n * var proj1 = uriproj.get(uris[0])\r\n * })\r\n * \r\n */\r\nexport function load (crsUri) {\r\n if (crsUri in projCache) {\r\n return Promise.resolve(projCache[crsUri])\r\n }\r\n \r\n let epsg = crsUriToEPSG(crsUri)\r\n let url = `https://epsg.io/${epsg}.proj4`\r\n \r\n return fetch(url).then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP response code: ${response.status}`)\r\n }\r\n return response.text()\r\n }).then(proj4string => set(crsUri, proj4string, {reverseAxes: crsUri in needsAxesReordering}))\r\n}\r\n\r\n/**\r\n * Stores a given projection for a given URI that can then be accessed via {@link get} and {@link load}.\r\n * If the projection is given as proj4 string and does not require axis reversal, then it is stored\r\n * as a named projection in proj4 itself under the given URI.\r\n * \r\n * @param {string} crsUri The CRS URI for which to store the projection.\r\n * @param {string|Projection} proj A proj4 string or a {@link Projection} object.\r\n * @param {Object} [options] Options object.\r\n * @param {boolean} [options.reverseAxes=false] If proj is a proj4 string, whether to reverse the projection axes.\r\n * @return {Projection} The newly stored projection.\r\n * @throws {Error} If crsUri or proj is missing, or if a PROJ.4 string cannot be parsed by proj4js. \r\n * \r\n * @example <caption>Storing a projection using a PROJ.4 string</caption>\r\n * var uri = 'http://www.opengis.net/def/crs/EPSG/0/27700'\r\n * var proj4 = '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 ' +\r\n * '+ellps=airy +towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +units=m +no_defs'\r\n * uriproj.set(uri, proj4)\r\n * \r\n * @example <caption>Storing a projection using a Projection object</caption>\r\n * var uri = 'http://www.opengis.net/def/crs/EPSG/0/27700'\r\n * var proj = {\r\n * forward: ([lon,lat]) => [..., ...],\r\n * inverse: ([x,y]) => [..., ...]\r\n * }\r\n * uriproj.set(uri, proj)\r\n */\r\nexport function set (crsUri, proj, options={}) {\r\n if (!crsUri || !proj) {\r\n throw new Error('crsUri and proj cannot be empty')\r\n }\r\n let projobj\r\n if (typeof proj === 'string') {\r\n projobj = proj4(proj)\r\n if (!projobj) {\r\n throw new Error(`Unsupported proj4 string: ${proj}`)\r\n }\r\n proj4.defs(crsUri, proj)\r\n if (options.reverseAxes) {\r\n projobj = reverseAxes(projobj)\r\n } \r\n } else {\r\n projobj = proj\r\n }\r\n projCache[crsUri] = projobj\r\n return projobj\r\n}\r\n\r\n/**\r\n * Return the EPSG code of an OGC CRS URI of the form\r\n * http://www.opengis.net/def/crs/EPSG/0/1234 (would return 1234).\r\n * \r\n * @param {string} crsUri The CRS URI for which to return the EPSG code.\r\n * @return {string} The EPSG code.\r\n */\r\nfunction crsUriToEPSG (uri) {\r\n let epsg\r\n if (uri.indexOf(EPSG_PREFIX) === 0) {\r\n epsg = uri.substr(EPSG_PREFIX.length)\r\n } else {\r\n throw new Error(`Unsupported CRS URI: ${uri}`)\r\n }\r\n \r\n return epsg\r\n}\r\n\r\n/**\r\n * Reverses projection axis order.\r\n * \r\n * For example, a projection with lon, lat axis order is turned into one with lat, lon order.\r\n * This is necessary since geographic projections in proj4 can only be defined with\r\n * lon,lat order, however some CRSs have lat,lon order (like EPSG4326).\r\n * Incorrectly, epsg.io returns a proj4 string (with lon,lat order) even if the CRS\r\n * has lat,lon order. This function manually flips the axis order of a given projection.\r\n * See also `needsAxesReordering` above.\r\n * \r\n * @param {Projection} proj The projection whose axis order to revert.\r\n * @return {Projection} The projection with reversed axis order.\r\n */\r\nfunction reverseAxes (proj) {\r\n return {\r\n forward: pos => proj.forward(pos).reverse(),\r\n inverse: pos => proj.inverse([pos[1], pos[0]])\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
\No newline at end of file