From a2e7a3fc15b9643398e32de9a75bc3115acf0d1b Mon Sep 17 00:00:00 2001 From: Miguel Del Castillo Date: Tue, 27 Feb 2024 11:43:56 -0600 Subject: [PATCH 1/2] Added version consistency check before each build (#896) * Added version consistency check script * Added version check step to build process in package.json --- package.json | 3 ++- src/WorldWind.js | 3 +-- tools/versioncheck.js | 48 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 tools/versioncheck.js diff --git a/package.json b/package.json index 8be0900e8..870d78a3c 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "url": "https://github.com/NASAWorldWind/WebWorldWind.git" }, "scripts": { - "build": "grunt", + "build": "npm run check-version && grunt", + "check-version": "node tools/versioncheck.js", "clean": "grunt clean", "doc": "grunt jsdoc", "prepare": "npm run build", diff --git a/src/WorldWind.js b/src/WorldWind.js index 46c0059a4..3aeaa0fc4 100644 --- a/src/WorldWind.js +++ b/src/WorldWind.js @@ -592,10 +592,9 @@ define([ // PLEASE KEEP ALL THIS IN ALPHABETICAL ORDER BY MODULE NAME (not direc var WorldWind = { /** * The WorldWind version number. - * @default "0.9.0" * @constant */ - VERSION: "0.9.0", + VERSION: "0.11.0", // PLEASE KEEP THE ENTRIES BELOW IN ALPHABETICAL ORDER /** diff --git a/tools/versioncheck.js b/tools/versioncheck.js new file mode 100644 index 000000000..dae1e3396 --- /dev/null +++ b/tools/versioncheck.js @@ -0,0 +1,48 @@ +const fs = require('fs'); +const path = require('path'); + +// Path to the project root from the script's location +const projectRoot = path.resolve(__dirname, '..'); + +function getVersionFromPackageJson() { + try { + const packageJsonPath = path.join(projectRoot, 'package.json'); + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); + console.log(`Version number in package.json is: ${packageJson.version}`); + return packageJson.version; + } catch (error) { + console.error(`An error occurred while reading or parsing package.json: ${error.message}`); + process.exit(1); + } +} + +function getVersionFromJsFile(filePath) { + try { + const jsFilePath = path.join(projectRoot, filePath); + const jsFileContent = fs.readFileSync(jsFilePath, 'utf8'); + const regex = /VERSION:\s*"([^"]+)"/; + const match = regex.exec(jsFileContent); + if (!match) { + console.error(`Version number not found in ${filePath}`); + process.exit(1); + } + console.log(`Version number in ${filePath} is: ${match[1]}`); + return match[1]; + } catch (error) { + console.error(`An error occurred while reading ${filePath}: ${error.message}`); + process.exit(1); + } +} + +function compareVersions(version1, version2) { + if (version1 === version2) { + console.log('Version numbers are consistent between package.json and WorldWind.js'); + } else { + console.error(`ERROR: Version numbers do not match between package.json and WorldWind.js`); + process.exit(1); + } +} + +const packageVersion = getVersionFromPackageJson(); +const jsWorldWindVersion = getVersionFromJsFile('src/WorldWind.js'); +compareVersions(packageVersion, jsWorldWindVersion); \ No newline at end of file From 5ffe2dfc54ab4d744fc9e587af9639c9910db228 Mon Sep 17 00:00:00 2001 From: Mark Peterson Date: Sat, 20 Sep 2025 00:17:46 -0700 Subject: [PATCH 2/2] Switch OSM to internal server (#902) Co-authored-by: markpet42 --- examples/BasicExample.js | 24 +++---- src/layer/OpenStreetMapImageLayer.js | 97 +++++----------------------- 2 files changed, 29 insertions(+), 92 deletions(-) diff --git a/examples/BasicExample.js b/examples/BasicExample.js index d4f2df7f2..9776baf31 100644 --- a/examples/BasicExample.js +++ b/examples/BasicExample.js @@ -29,9 +29,9 @@ * Illustrates how to build a basic WorldWind globe. */ requirejs(['./WorldWindShim', - './LayerManager'], + './LayerManager'], function (WorldWind, - LayerManager) { + LayerManager) { "use strict"; // Tell WorldWind to log only warnings and errors. @@ -43,18 +43,18 @@ requirejs(['./WorldWindShim', // Create and add layers to the WorldWindow. var layers = [ // Imagery layers. - {layer: new WorldWind.BMNGLayer(), enabled: true}, - {layer: new WorldWind.BMNGLandsatLayer(), enabled: false}, - {layer: new WorldWind.BingAerialLayer(null), enabled: false}, - {layer: new WorldWind.BingAerialWithLabelsLayer(null), enabled: true}, - {layer: new WorldWind.BingRoadsLayer(null), enabled: false}, - {layer: new WorldWind.OpenStreetMapImageLayer(null), enabled: false}, + { layer: new WorldWind.BMNGLayer(), enabled: true }, + { layer: new WorldWind.BMNGLandsatLayer(), enabled: false }, + // {layer: new WorldWind.BingAerialLayer(null), enabled: false}, + // {layer: new WorldWind.BingAerialWithLabelsLayer(null), enabled: true}, + // {layer: new WorldWind.BingRoadsLayer(null), enabled: false}, + { layer: new WorldWind.OpenStreetMapImageLayer("osm"), enabled: true }, // Add atmosphere layer on top of all base layers. - {layer: new WorldWind.AtmosphereLayer(), enabled: true}, + { layer: new WorldWind.AtmosphereLayer(), enabled: true }, // WorldWindow UI layers. - {layer: new WorldWind.CompassLayer(), enabled: true}, - {layer: new WorldWind.CoordinatesDisplayLayer(wwd), enabled: true}, - {layer: new WorldWind.ViewControlsLayer(wwd), enabled: true} + { layer: new WorldWind.CompassLayer(), enabled: true }, + { layer: new WorldWind.CoordinatesDisplayLayer(wwd), enabled: true }, + { layer: new WorldWind.ViewControlsLayer(wwd), enabled: true } ]; for (var l = 0; l < layers.length; l++) { diff --git a/src/layer/OpenStreetMapImageLayer.js b/src/layer/OpenStreetMapImageLayer.js index 496029786..c4987cf10 100644 --- a/src/layer/OpenStreetMapImageLayer.js +++ b/src/layer/OpenStreetMapImageLayer.js @@ -29,17 +29,15 @@ * @exports OpenStreetMapImageLayer */ define([ - '../util/Color', - '../layer/Layer', - '../util/Logger', - '../ogc/wmts/WmtsCapabilities', - '../layer/WmtsLayer' - ], - function (Color, - Layer, - Logger, - WmtsCapabilities, - WmtsLayer) { + '../geom/Location', + '../geom/Sector', + '../layer/TiledImageLayer', + '../util/WmsUrlBuilder' +], + function (Location, + Sector, + TiledImageLayer, + WmsUrlBuilder) { "use strict"; /** @@ -52,79 +50,18 @@ define([ * @param {String} displayName This layer's display name. "Open Street Map" if this parameter is * null or undefined. */ - var OpenStreetMapImageLayer = function (displayName) { + var OpenStreetMapImageLayer = function (layerName) { + TiledImageLayer.call(this, + Sector.FULL_SPHERE, new Location(36, 36), 16, "image/jpeg", "OpenStreetMap-" + layerName, 256, 256); - Layer.call(this, this.displayName); + this.displayName = "OpenStreetMap"; + this.pickEnabled = false; - this.displayName = displayName || "Open Street Map"; - - this.layer = null; - - this.xhr = null; - - // TODO: Picking is enabled as a temporary measure for screen credit hyperlinks to work (see Layer.render) - this.pickEnabled = true; - }; - - OpenStreetMapImageLayer.prototype = Object.create(Layer.prototype); - - OpenStreetMapImageLayer.prototype.doRender = function (dc) { - - this.configureLayer(dc); - - if (this.layer) { - this.layer.opacity = this.opacity; - this.layer.doRender(dc); - this.inCurrentFrame = this.layer.inCurrentFrame; - - // Add a screen credit to attribute the data source to OSM and EOX - // The pattern for this attribute is described in the WMTS Capabilities document and demonstrated at EOX - // Maps site: http://maps.eox.at/ - if (this.inCurrentFrame) { - dc.screenCreditController.addCredit("OpenStreetMap ©", Color.DARK_GRAY); - dc.screenCreditController.addCredit("EOX.at ©", Color.DARK_GRAY); - } - } + this.urlBuilder = new WmsUrlBuilder("https://worldwind47.arc.nasa.gov/mapcache", + layerName, "", "1.3.0"); }; - OpenStreetMapImageLayer.prototype.configureLayer = function (dc) { - if (!this.xhr) { - var self = this; - var canvas = dc.currentGlContext.canvas; - this.xhr = new XMLHttpRequest(); - this.xhr.open("GET", "https://tiles.maps.eox.at/wmts/1.0.0/WMTSCapabilities.xml", true); - this.xhr.onreadystatechange = function () { - if (self.xhr.readyState === 4) { - if (self.xhr.status === 200) { - // Create a layer from the WMTS capabilities. - var wmtsCapabilities = new WmtsCapabilities(self.xhr.responseXML); - var wmtsLayerCapabilities = wmtsCapabilities.getLayer("osm"); - var wmtsConfig = WmtsLayer.formLayerConfiguration(wmtsLayerCapabilities); - wmtsConfig.title = self.displayName; - self.layer = new WmtsLayer(wmtsConfig); - // Send an event to request a redraw. - var e = document.createEvent('Event'); - e.initEvent(WorldWind.REDRAW_EVENT_TYPE, true, true); - canvas.dispatchEvent(e); - } else { - Logger.log(Logger.LEVEL_WARNING, - "OSM retrieval failed (" + xhr.statusText + "): " + url); - } - } - }; - - this.xhr.onerror = function () { - Logger.log(Logger.LEVEL_WARNING, "OSM retrieval failed: " + url); - }; - - this.xhr.ontimeout = function () { - Logger.log(Logger.LEVEL_WARNING, "OSM retrieval timed out: " + url); - }; - - this.xhr.send(null); - } - - }; + OpenStreetMapImageLayer.prototype = Object.create(TiledImageLayer.prototype); return OpenStreetMapImageLayer; }