1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import Uri from "../ThirdParty/Uri.js";
- import defaultValue from "./defaultValue.js";
- import defined from "./defined.js";
- import DeveloperError from "./DeveloperError.js";
- /**
- * Given a relative Uri and a base Uri, returns the absolute Uri of the relative Uri.
- * @function
- *
- * @param {String} relative The relative Uri.
- * @param {String} [base] The base Uri.
- * @returns {String} The absolute Uri of the given relative Uri.
- *
- * @example
- * //absolute Uri will be "https://test.com/awesome.png";
- * const absoluteUri = Cesium.getAbsoluteUri('awesome.png', 'https://test.com');
- */
- function getAbsoluteUri(relative, base) {
- let documentObject;
- if (typeof document !== "undefined") {
- documentObject = document;
- }
- return getAbsoluteUri._implementation(relative, base, documentObject);
- }
- getAbsoluteUri._implementation = function (relative, base, documentObject) {
- //>>includeStart('debug', pragmas.debug);
- if (!defined(relative)) {
- throw new DeveloperError("relative uri is required.");
- }
- //>>includeEnd('debug');
- if (!defined(base)) {
- if (typeof documentObject === "undefined") {
- return relative;
- }
- base = defaultValue(documentObject.baseURI, documentObject.location.href);
- }
- const relativeUri = new Uri(relative);
- if (relativeUri.scheme() !== "") {
- return relativeUri.toString();
- }
- return relativeUri.absoluteTo(base).toString();
- };
- export default getAbsoluteUri;
|