diff --git a/web/src/gis/globe/ArcgisElevationCoverage.js b/web/src/gis/globe/ArcgisElevationCoverage.js index 9f1f7f7d..82428b62 100644 --- a/web/src/gis/globe/ArcgisElevationCoverage.js +++ b/web/src/gis/globe/ArcgisElevationCoverage.js @@ -33,13 +33,14 @@ import ArcgisElevationWorker from 'worker!./ArcgisElevationWorker.js'; * @classdesc Provides elevations for Earth. Elevations are drawn from the NASA WorldWind elevation service. */ function ArcgisElevationCoverage() { + // see: http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer TiledElevationCoverage.call(this, { coverageSector: new Sector(-WWMath.MAX_LAT, WWMath.MAX_LAT, -180, 180), - resolution: 360 / 256, + resolution: 360 / 2 ** 16 / 256, retrievalImageFormat: "application/bil16", - minElevation: -11000, - maxElevation: 8850, - urlBuilder: new WmsUrlBuilder("https://worldwind26.arc.nasa.gov/elev", "aster_v2", "", "1.3.0") + minElevation: -450, + maxElevation: 8700, + urlBuilder: new WmsUrlBuilder("http://localhost:2020/api/Map/Elev", "WorldElevation3D", "", "1.3.0") }); this.displayName = "Arcgis Elevation Coverage"; @@ -59,7 +60,7 @@ ArcgisElevationCoverage.prototype.retrieveTileImage = function (tile) { let z = 360 / (tile.sector.maxLongitude - tile.sector.minLongitude); let x = (180 + tile.sector.minLongitude) / 360 * Math.pow(2, z); - if(Math.abs(tile.sector.minLatitude) > 85.01) { + if (Math.abs(tile.sector.minLatitude) > 85.01) { return; } diff --git a/web/src/gis/globe/TiledElevationCoverage.js b/web/src/gis/globe/TiledElevationCoverage.js index 8220eace..ae2dcc7e 100644 --- a/web/src/gis/globe/TiledElevationCoverage.js +++ b/web/src/gis/globe/TiledElevationCoverage.js @@ -69,7 +69,7 @@ function TiledElevationCoverage(config) { ElevationCoverage.call(this, config.resolution); - var firstLevelDelta = 45, + var firstLevelDelta = 360, tileWidth = 256, lastLevel = LevelSet.numLevelsForResolution(firstLevelDelta / tileWidth, config.resolution), numLevels = Math.ceil(lastLevel); // match or exceed the specified resolution @@ -182,7 +182,6 @@ function TiledElevationCoverage(config) { */ // this.urlBuilder = new UrlBuilder() || null; this.urlBuilder = config.urlBuilder || null; - this.urlBuilder.serviceAddress = 'http://localhost:2020/api/Map/Elev'; } TiledElevationCoverage.prototype = Object.create(ElevationCoverage.prototype); @@ -333,7 +332,7 @@ TiledElevationCoverage.prototype.areaElevationsForGrid = function (sector, numLa if (isNaN(result[resultIndex])) { if (this.coverageSector.containsLocation(lat, lon)) { // ignore locations outside of the model s = (lon + 180) / 360; - t = (lat + 90) / 180; + t = (lat + 180) / 360; this.areaElevationForCoord(s, t, level.levelNumber, result, resultIndex); } } @@ -359,7 +358,7 @@ TiledElevationCoverage.prototype.areaElevationForCoord = function (s, t, levelNu for (var i = levelNumber; i >= 0; i--) { level = this.levels.level(i); levelWidth = Math.round(level.tileWidth * 360 / level.tileDelta.longitude); - levelHeight = Math.round(level.tileHeight * 180 / level.tileDelta.latitude); + levelHeight = Math.round(level.tileHeight * 360 / level.tileDelta.latitude); tMin = 1 / (2 * levelHeight); tMax = 1 - tMin; vMin = 0;