Giter VIP home page Giter VIP logo

cesium-geoserverterrainprovider's People

Contributors

ceiblef avatar isergio avatar kaktus40 avatar sushrut141 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cesium-geoserverterrainprovider's Issues

Error url not defined

Hi,

I hot an error with the latest version - with Cesium 1.33.

In line 1031
var promise = Cesium.loadArrayBuffer(url, Cesium.loadImage);

url is not defined - why does this work at yours ?

Rüdiger

using error

I use the ''GeoserverTerrainProvider.js''(which is to cesium b28) like this(which is reedit on cesium demo and the demo 'terrain' run successfully on my machine ) :
require(['Cesium','GeoserverTerrainProvider'], function(Cesium,GeoserverTerrainProvider) {
"use strict";
function createTerrainMenu(terrainProviders) {
var terrainProviderOptions = terrainProviders.map(function(terrainProvider) {
return {
text : terrainProvider.name
};
});
Sandcastle.addToolbarMenu(terrainProviderOptions, function() {
scene.terrainProvider = terrainProviders[this.selectedIndex].provider;
}, 'terrainMenu');
Sandcastle.addToolbarButton('Mount Everest', function() {
var eye, target, up;
if (scene.mode === Cesium.SceneMode.SCENE3D) {
eye = new Cesium.Cartesian3(294572.0645397696, 5637826.573008351, 2978624.6868285);
target = Cesium.Cartesian3.add(eye, new Cesium.Cartesian3(0.9028130862217908, -0.42449297750082904, -0.06880583840911567));
up = new Cesium.Cartesian3(0.40668971896562117, 0.790807045510862, 0.45741413322152297);
scene.camera.lookAt(eye, target, up);
} else if (scene.mode === Cesium.SceneMode.COLUMBUS_VIEW) {
eye = new Cesium.Cartesian3(9684590.891310014, 3114799.076252769, 9849.375792522824);
target = Cesium.Cartesian3.add(eye, new Cesium.Cartesian3(-0.8929328433855669, -0.00005779973945286486, -0.45018988645076763));
up = new Cesium.Cartesian3(-0.4501898855076042, -0.0000291369789812141, 0.8929328452557279);
scene.camera.lookAt(eye, target, up);
} else {
scene.camera.viewRectangle(new Cesium.Rectangle(1.516102969, 0.48744464, 1.518102969, 0.48944464));
}
}, 'zoomButtons');

    Sandcastle.addToolbarButton('Half Dome', function() {
        var eye, target, up;

        if (scene.mode === Cesium.SceneMode.SCENE3D) {
            eye = new Cesium.Cartesian3(-2496304.1498512086, -4391818.97382059, 3884176.4503971986);
            target = Cesium.Cartesian3.add(eye, new Cesium.Cartesian3(0.9279518715011381, -0.29488412129953234, -0.22792252890604328));
            up = new Cesium.Cartesian3(-0.11836693744723503, -0.8130611584421428, 0.5700182635106171);
            scene.camera.lookAt(eye, target, up);
        } else if (scene.mode === Cesium.SceneMode.COLUMBUS_VIEW) {
            eye = new Cesium.Cartesian3(-13314946.646404704, 4200941.442507448, 2468.225945515426);
            target = Cesium.Cartesian3.add(eye, new Cesium.Cartesian3(0.9624895834866811, 0.04124314776883213, -0.26816562874787864));
            up = new Cesium.Cartesian3(0.2679197697914868, 0.011480478929947842, 0.9633728227203466);
            scene.camera.lookAt(eye, target, up);
        } else {
            scene.camera.viewRectangle(new Cesium.Rectangle(-2.08724538, 0.6577939, -2.08524538, 0.6597939));
        }
    }, 'zoomButtons');

    Sandcastle.addToolbarButton('San Francisco Bay', function() {
        var eye, target, up;

        if (scene.mode === Cesium.SceneMode.SCENE3D) {
            eye = new Cesium.Cartesian3(-2674718.9291375633, -4332137.224608461, 3888180.6614196445);
            target = Cesium.Cartesian3.add(eye, new Cesium.Cartesian3(-0.40034097132786534, 0.9155843741828319, 0.03784653786617176));
            up = new Cesium.Cartesian3(-0.6502679490649945, -0.3129458646313862, 0.6922546353438556);
            scene.camera.lookAt(eye, target, up);
        } else if (scene.mode === Cesium.SceneMode.COLUMBUS_VIEW) {
            eye = new Cesium.Cartesian3(-13562569.113918452, 4176598.9965795614, 37656.37201701476);
            target = Cesium.Cartesian3.add(eye, new Cesium.Cartesian3(-0.8108519561707095, 0.4023795334200999, -0.42498213639958615));
            up = new Cesium.Cartesian3(-0.3806859699462094, 0.18891270085627615, 0.905201736488051);
            scene.camera.lookAt(eye, target, up);
        } else {
            scene.camera.viewRectangle(new Cesium.Rectangle(-2.147621889, 0.64829691, -2.125621889, 0.67029691));
        }
    }, 'zoomButtons');

    var terrainSamplePositions;
    var billboards;
    var labels;

    function sampleTerrainSuccess() {
        var ellipsoid = Cesium.Ellipsoid.WGS84;

        if (typeof billboards === 'undefined') {
            billboards = new Cesium.BillboardCollection();

            Cesium.when(Cesium.loadImage('../images/facility.gif'), function(image) {
                var textureAtlas = scene.createTextureAtlas({images : [image]});
                billboards.textureAtlas = textureAtlas;
            });
        } else {
            billboards.removeAll();
        }

        if (typeof labels === 'undefined') {
            labels = new Cesium.LabelCollection();
        } else {
            labels.removeAll();
        }

        for( var i = 0; i < terrainSamplePositions.length; ++i ){
            var position = terrainSamplePositions[i];
            billboards.add({
                position : ellipsoid.cartographicToCartesian(position),
                verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
                scale : 0.7,
                imageIndex : 0
            });

            labels.add({
                position : ellipsoid.cartographicToCartesian(position),
                text : position.height.toFixed(1),
                horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
                scale : 0.3,
                pixelOffset : new Cesium.Cartesian2(0,14),
                fillColor : new Cesium.Color(1,0,0),
                outlineColor : Cesium.Color.WHITE
            });

        }
        scene.primitives.add(billboards);
        scene.primitives.add(labels);
    }

    Sandcastle.addToolbarButton('Sample Everest Terrain', function() {
        var gridWidth = 41;
        var gridHeight = 41;
        var everestLatitude = Cesium.Math.toRadians(27.988257);
        var everestLongitude = Cesium.Math.toRadians(86.925145);
        var rectangleHalfSize = 0.005;
        var e = new Cesium.Rectangle(everestLongitude - rectangleHalfSize,everestLatitude - rectangleHalfSize,everestLongitude + rectangleHalfSize,everestLatitude + rectangleHalfSize);
        terrainSamplePositions = [];
        for (var y = 0; y < gridHeight; ++y) {
            for (var x = 0; x < gridWidth; ++x) {
                var longitude = Cesium.Math.lerp(e.west, e.east, x / (gridWidth - 1));
                var latitude = Cesium.Math.lerp(e.south, e.north, y / (gridHeight - 1));
                var position = new Cesium.Cartographic(longitude, latitude);
                terrainSamplePositions.push(position);
            }
        }

        Cesium.when(Cesium.sampleTerrain(scene.terrainProvider, 9, terrainSamplePositions), sampleTerrainSuccess);
    }, 'sampleButtons');
}

var viewer = new Cesium.Viewer('cesiumContainer');

var scene = viewer.scene;
var globe = scene.globe;
globe.depthTestAgainstTerrain = true;

var cesiumTerrainProviderHeightmaps = new Cesium.CesiumTerrainProvider({
    url : '//cesiumjs.org/smallterrain',
    credit : 'Terrain data courtesy Analytical Graphics, Inc.'
});

var cesiumTerrainProviderMeshes = new Cesium.CesiumTerrainProvider({
    url : '//cesiumjs.org/stk-terrain/tilesets/world/tiles',
    credit : 'Terrain data courtesy Analytical Graphics, Inc.'
});

var ellipsoidProvider = new Cesium.EllipsoidTerrainProvider();

var vrTheWorldProvider = new Cesium.VRTheWorldTerrainProvider({
    url : '//www.vr-theworld.com/vr-theworld/tiles1.0.0/73/',
    credit : 'Terrain data courtesy VT MÄK'
});
 var geoterrainProvider =  Cesium.GeoserverTerrainProvider({
    url : "http://localhost:9090/geoserver/jdz/wms",
    layerName: "pdem",
    heightmapWidth:64,
    styleName:"mySLD",
    tagAltitudeProperty:"PALETTE_INDEX",
    waterMask:false
});

var terrainProviders = [
    { name : 'CesiumTerrainProvider - STK World Terrain meshes', provider : cesiumTerrainProviderMeshes },
    { name : 'CesiumTerrainProvider - Small Terrain heightmaps and water mask', provider : cesiumTerrainProviderHeightmaps },
    { name : 'EllipsoidTerrainProvider', provider : ellipsoidProvider },
    { name : 'VRTheWorldTerrainProvider', provider : vrTheWorldProvider }
];

scene.terrainProvider = cesiumTerrainProviderMeshes;

createTerrainMenu(terrainProviders);

Sandcastle.finishedLoading();

});

But it can't run,press F12 and find some infomation like this :
image

image
always error tips "Cesium is not defined GeoserverTerrainProvider.js:536 "
Can someone help me!

Using of TerrainProvider with GeoWebCache

Hi!

I successfully converted my TIFF images in Float32 format and now picture looks perfect!
Now I want to cache this layer but I didn't found image/bil format in list of available formats for caching in GeoWebCache. It allows to create cache in following formats:

capture

But TerrainProvider request tiles in image/bil format and GeoWebCache return exception report with "wrong format (image/bil)" message.

Is there any ability to use TerrainProvider with cached tiles?

P.s. I saw your example with converting 16 bits grayscale images to RGB with applying of style. But my images not in 16 bit format but in 32 bit.

Thanks in advance!

Getting sharp edges on terrain with WMTS service

Following is the code I used:

var terrainProvider = new Cesium.GeoserverTerrainProvider({
    service : "WMTS",
    url : "http://localhost:8080/geoserver/gwc/service/wmts",
    layerName: "elevation:srtm_global_90m_tiled"
}); 
viewer.terrainProvider = terrainProvider;

It seems that "WMS" service is working fine, but when I try to use "WMTS" service, I get sharp edges on terrain.

I have attached the snapshot and getCapabilities doc.

wmts-getcapabilities.txt

wmts_issue

conditions when zooming in on the terrain

hello kaktus40,

I'm having trouble zooming in on the terrain using the geoserver

when the far zoom looks good, see the image below
UCScreenshot20200807110236

but when zooming in closer it looks like this
UCScreenshot20200807110254
UCScreenshot20200807110326

do you have any suggestions to solve this problem?

Thank you

Terrain look like Stairs

Hi,

I'm new at this,

I'm using geoserver with dds/bill plugin to send the tiles. The DEM resolution is 10m.

When I'm in large zoom everything looks great but when I zoom in the terrain start to look like stairs

What do you think is the problem?
untitled

Thanks

Using UInt32 tiles

Hi and thanks again for your great work!

As I know by default the plugin works with data in Integer 16 bit format. Float32 also can be used with implementation of formatArray method, provided by you.

Is there any ability to use elevation map with data in UInt32 bit format without convertation with terrain provider?

GdalInfo:
capture

Please let me know if you need more info or data sample!
Thanks in advance!

Transparent Globe instead of map

Good day!
I have a problem with Cesium + GeoserverTerrainProvider.

There are same layer at Cesium.WebMapTileServiceImageryProvider and GeoserverTerrainProvider. Same layer name, same style.
When I load page with Cesium, GeoserverTerrainProvider sent GET query to server with tiles with reques=GetCapabilities.
And-- and nothing, I have no tiles.
But when I don't use GeoserverTerrainProvider and use WebMapTileServiceImageryProvider only, everithing alright. I have all tiles I need.
And, if I use WebMapTileServiceImageryProvider and GeoserverTerrainProvider both, I have transparent Earth Globe, and nothing more.
What can I do to fix this problem?
Thanks!

Getting sharp edges on Cesium when using high resolution DEM

I have attached the snapshot of the result that I am getting with 10m resolution DEM (Cartodem-10m). Initially it was Float-32 type(for which I used bil-32 from geoserver), but even after converting to Int-16 type (and using bil-16 from geoserver) same issue is recurring. Also I am getting similar results when I am using SISDP-10m DEM. Currently, I am using Cesium-1.13 and Geoserver 2.8.0.
I referred to this issue(#7) which also consist of mention of similar problem, only in this case, the no. of levels while tiling the DEM seems to be more than sustainable(12-instead of 11). I used 4 levels and 512 x 512 as pixel size while giving the gdal_retile parameters. So, I increased the no. of levels to 11 and pixel size 100 x 100. Although there was reduction in the spikes but issue still remains. Please let me know the correlation between DEM resolution and parameters to be given while performing gdal_retile so that Cesium does not behave weirdly.

carto_10m_issue
carto_10m_layer

Thanks,
Parthesh B.

Stepped relief. Please help me understand my error

Hello, @kaktus40! Thanks for the great plugin!
With difficulty, but I was able to visualize 3d terrain with Your plugin. But I'm not happy with the result.
My result:
image
And Cesium Terrain Result:
image

In QGIS my WMS Layer looks like that (with SRTM2Color style):
image

Why do you think the height is displayed incorrectly - stepped?
I will be grateful for any help.

The providers stops querying for tiles

Am trying to use this provider with cesium 1.15.
Initially it queries capabilities ok, and also some tiles are fetched ok (see attached), but then just stops and terrain on map not updated at all.

Here is how I use it:

 var terrainProvider = new Cesium.GeoserverTerrainProvider({
                url : globals.geoserverUrl+"/elevation/wms",
                proxy : {
                    getURL: function(url){
                        return gisextGlobals.geoserverUrl+url.substr(url.indexOf('/elevation'));
                    }
                },
                layerName: "lidar_dem_full_rescaled"
            });

Any ideas what could it be?

thanks in advance.

selection_068

Support for GeoServer LayerGroups

I have integrated GTP into a site I have built around Cesium and it is working great except when I try to load a geoserver layergroup that contains overlapping terrain layers (using geoserver dds plugin to pull in geotiffs that were build with goal_retile). It appears almost as if the gray index from each layer is added to the others to provide a "composite" result (including adding -32768 from one sparse layer to valid elevations from a populated layer). I was hoping to get the elevation from only the top layer (as designated by the layer order in geoserver) - and have missing data only passed through when none of the layers in the group have any data. Is this supported? If not, any suggestions for how to proceed?

How to solve ”Some tiffs are not int16 Gray images ?

Hello,
My tiff files are int24 Gray images. These tiff files must translate into 8 bit gray images? Why only int8 gray images can display by your method?
Could I change the source code to convert the 24-bit topographic map directly to the 8-bit topographic map? Because I see your code can only transferre int16 gray images.
If can not , cloud you provide a good idea?
Thanks.

Feedback

Hi,

First, thank you for maintaining this plugin.
I have been experiencing with it and would like to share my feedback and also ask questions ;).

It works using BIL/PNG, style, on top of one geotiff.

PNG tiles only weight 3K when BIL are using 8K.
So why do you advice the use of BIL format?

Is it taking more resources on the client or server?
Have you done some measurements?

I found two situations where geoserver would serve bad BIL:

  • requesting a box which does not intersect with the source data (fixed
    geoserver/geoserver#616);
  • sometimes 44K BIL is sent with bad data (only with pyramid plugin, not fixed).

You fallback on PNG if you cannot decode the BIL.
Do you also have these issues?

For the record, I used gdal_retile.py -v -r bilinear -levels 4 -ps 2048 2048 -co "TILED=YES" -targetDir bmpyramid srtm90.tiff.

Regards,

Guillaume

PS: maybe you could explain in the README how to select a request image format (copying the image descriptor).

Distorted terrain images

Hi,
I have an issue with terrain data that looks blocky/jagged when zooming in. This is for DTED level 0 source data.
distorted-terrain

The process I followed to transform/load the data is as follows:

Go to dted0 root directory
cd dted0

Make a retile output directory
mkdir dted0-tiles

Build the virtual dataset file from dted0
gdalbuildvrt dted0.vrt .//.dt0

Retile from the virtual dataset file to 512 x 512 tiles
gdal_retile.py -v -r cubic -levels 4 -ps 512 512 -co "TILED=YES" -targetDir dted0-tiles dted0.vrt

Create ImagePyramid raster data store in geoserver with dted0-tiles as the source
Publish the corresponding layer in geoserver
Check the layer preview to make sure the layer loaded correctly

Create new Geoserver Terrain Provider:

var terrainProvider = new Cesium.GeoserverTerrainProvider({
service: "WMS",
url : "http://localhost:8084/geoserver/elevation/wms",
layerName: "dted0-tiles",
});

See the attached screenshot to see an example of the blocky/jagged terrain

One thing I noticed is that the WMS web service calls to get terrain data are getting 65 x 65 PNG tiles, not sure if this is expected or not.

Can you recommend how I can best troubleshoot this?

Thanks

Terrain Gaps and Artifacts Introduced After Conversion

I'm running into an issue where it appears that at tile boundaries, the terrain doesn't quite match up. This leads to gaps, pits, and artifacts being introduced into the converted product. The current area that I'm looking at uses two DTED files that I merge together (after converting to TIF).

I've tested a couple sources of DTED/SRTF (Level 1 & Level 2) DT1/DT2 files and also TanDEM-X GeoTIFFs. All sources I tested have this same issue at the same locations on the earth, so I think this rules out an issue with the source of the data itself. Below are my general steps to using the DTED data within Cesium via GeoServer:

# convert DT2 to TIF
gdal_translate {source}.DT2 {out}.tif

# Use GeotiffTranslate to convert to 8-bit RGB TIF
java -jar GeotiffTranslate.jar -i .\path\to\tif -o .\path\to\out 

# Merge TIFs into single file
gdal_merge.py -o {merged}.tif {converted_file_1}.tif {converted_file_2}.tif

# Use the retile utility to prep for use with WMS
gdal_retile.py -v -r cubic -levels 4 -ps 512 512 -co "TILED=YES" -targetDir {output_dir} {input_tifs}

# Add new "ImagePyramid" data store in GeoServer under the "elevation" workspace

# Set terrain provider to GeoServer's new terrain layer using a new Cesium.GeoserverTerrainProvider object

When viewing the area that the terrain includes within Cesium, I observe the gaps and artifacts shown in the screenshots below. Most of the area is perfectly fine and doesn't have these issues, but about 25% of the Western side of the area does. Any advice or things to try would be appreciated.

cesium-terrain-2

cesium-terrain-3

Setting waterMask true gives error

I'm using SRTM data to get the Height Map.
Everything works fine when waterMask is set to false however when I set it to true
I get a number of rendering errors. Also the globe is rendered awkwardly with tiles that keep flikering in and out.
INVALID_OPERATION: texImage2D: ArrayBufferView not big enough for request with UNPACK_ALIGNMENT > 1

texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.
image

OutOfMemory Error- GeotiffTranslate

Hello,
I tried to use your GeotiffTranslate app, but I got an OutOfMemoryError (java heap space). I encreased the heap space to 2048 MB but I got the same error. My Ifsar-DEM (.tif format, 16 bit int, grey band) has a size of 350 Mb.
Java version 8 (32 bit) on a win 7 64 bit machine.
See screenshot.
oomerror.
Thank you.

BIL/DDS Extension Issue and Sample Code

I have installed the bil/dds extension but when i select BIL from the layer preview page of geoserver, a file is downloaded with following message in it

Cannot get WMS bil tiles bigger than 512x512, try WCS

Also when i run the example code provided in README it produces following error

Cesium.js:535 Uncaught TypeError: Cannot read property 'getContext' of undefined
at new N (Cesium.js:535)
at new Ee (Cesium.js:552)
at cesium6.html:19

Line no. 19 at which the above error occurs is

var scene = new Cesium.Scene(canvas);

Kindly guide me regarding these two issues

Regards

Terrain Layer not loaded in Cesium due to previous error

Approach: Style image (SLD), 16bit GeoTIFF
Versions: GeoServer 2.5.1, Cesium 1.1 (unminified), NodeJS Express
Result: Cesium Globe is black

Cesium layer definition:

    var geoTerrainProvider = new Cesium.GeoserverTerrainProvider({
        url: "http://localhost:8080/geoserver/wms",
        layerName: "ws:tif",
        heightMapWidth: 64,
        styleName: "my_sld",
        hasStyledImage: true,
        waterMask: true
    });

In console, following two errors are displayed while terrain layer is loaded:

"An error occurred in "GeoserverTerrainProvider": Failed to obtain terrain tile X: 1 Y: 0 Level: 0." Cesium.js:19770
"An error occurred in "GeoserverTerrainProvider": Failed to obtain terrain tile X: 0 Y: 0 Level: 0." Cesium.js:19770

My call stack says, that errorEvent is raised (l. 855) in GeoserverTerrainProvider.js.

import?

How would I use this with standard vite project?
I tried import import {GeoserverTerrainProvider} from "./geoserverterrain/GeoserverTerrainProvider";
but I get the error:

Uncaught SyntaxError: The requested module '/src/components/Globe/geoserverterrain/GeoserverTerrainProvider.js' does not provide an export named 'GeoserverTerrainProvider' (at GlobeComponent.jsx:9:9)

After using plugin only half of the world map is rendered/wrapped around cesium globe

I have to render a terrain tile of particular area on the cesium globe. For that, I have used srtm data in geotiff format and used gdal utility 'gdal_retilepy' to create tiles and then added in Geoserver through imagepyramid plugin. I have inserted mySLD.xml (styled geotiff format), as mentioned in readme.md. I am using bing map as base layer.
I am getting following issues with the plugin -

  1. On rendering I am getting only half of the globe ( the half where my tile lies).
  2. All lat lon informations are wrong. I am getting random values.
  3. Elevation values are negative and too small (eg. -2.045453453e-9)

But I can view the draped terrain on the area (rendering is possible).

XML supported

Cesium 1.44 not support any longer with:

  1. Cesium.loadXML it need to change to Cesium.Resource.fetchXML
  2. Cesium.loadArrayBuffer it need to change to Cesium.Resource.fetchArrayBuffer

WebGL error

Hello,
I am trying to visualize some bathymetry data in a geotiff but I get the folowing error.

I tried with SLD also but got the same error.

WebGL: INVALID_OPERATION: texImage2D: ArrayBufferView not big enough for request with UNPACK_ALIGNMENT > 1

Any ideas of how to fix this?

Thanks!

loading DEM of larger area than given area.

I have loaded the DEM covering very small size through geoserver, but DEM is loading over larger area on cesium globe even my input doesn't contain any information in rest area.

Stepped Terrain on Low Elevation Zooming

Hi, I'm using your library with the following dataset and config geoserver config

Geoserver plugins: BIL/DDS, image pyramid

Source Data: dted level 2

Dted2 Conversion Steps:

  • gdalbuildvrt dted2.vrt .//.dt2
  • gdal_retile.py -v -r cubic -levels 4 -ps 512 512 -co "TILED=YES" -targetDir dted2-tiles dted2.vrt

Elevation data store: Image Pyramid

BIL Format Settings

  • Application Encoding: application/bil16
  • Byte Order: Big Endian

The terrain renders, but on close-in zoom levels, the terrain appears to have a "stepped" appearance. Do you know if there's anything I can do in the conversion process or otherwise to generate the terrain so it doesn't have the stepped appearance on lower elevation zooming?

stepped-terrain

cesium serrated display

Hi,

I am using geoserver and bil format settings application/bil16 - Big Endian,

my code is;

var terrainProvider = new Cesium.GeoserverTerrainProvider({
url: "http://localhost:8080/geoserver/test/wms?",
layerName: "test",
maxLevel: 10,
highest: 12000,
lowest: -500,
heightMapWidth: 64,
heightMapHeight: 64
});

What is your opinion about this problem?

tirtik

DDS/BIL plugin script for sub-meter elevation

Hello kaktus40,
I was wondering how you can alter your script to use sub-meter elevation ranges.
I assume, your using the int 16 bit value range. It's working great with data of elevation ranges in meters using the dds/bil plugin and your GeoserverTerrainProvider plugin.
Now, I'm trying to include data of sub-meter elevation ranges (e.g. 0.3m).
I created floating 32 bit tiles and altered your script to set and get float32 values of your dds/bil plugin script. Also, I set the byte order in GeoServer to "Big Endian" which causes the error(see picture).

capture

Do you have any ideas?

Thank you!

stepped elevation levels

What am I doing wrong when the elevation looks stepped like you see in the image. I have used a srtm (90 meters) with pyramids and the styled variant for elevation transformation...
image

Maximum use accuracy

Hi, I am loading 5m resolution DTM on cesium globe.
qq 20180720162420
It seems to lose accuracy. And the browser does not seem to request higher resolution image data.
How can I optimize and improve accuracy?

Dem showing issue

Issue in showing dem of cog large file for a small patch its working fine

blocky terrain question

Attached is a comparison of cgiar srtm 90m from http://srtm.csi.cgiar.org/download with Cesium World Terrain. Is there a way to reduce the blockiness of the terrain? Or is this just a result of using only 90m terrain resolution?

I configured my GeoserverTerrainProvider.js to use the 'mySLD.xml option' with WMTS. Thanks for your time! @kaktus40

image

Using with BIL DTM format ?

Hello, I'm trying to use this repo to render DTP flux diffused as BIL images by the provider "IGN" in France.
I posted this issue on CesiumJS repo : CesiumGS/cesium#9426 (comment)

Hye, 
In France, a public service called Geoportail use WMS flux provided by IGN. Requests are in this format : 
`https://wxs.ign.fr/an7nvfzojv5wa96dsga5nk8w/geoportail/wmts?LAYER=ELEVATION.ELEVATIONGRIDCOVERAGE.HIGHRES&FORMAT=image/x-bil;bits=32&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=WGS84G&TILEMATRIX=12&TILEROW=1012&TILECOL=4228`
I would like to use this flux as as CesiumTerrainProvider in CesiumJS. 

I tried with https://github.com/kaktus40/Cesium-GeoserverTerrainProvider with no result... 

Any idea please ...?

image

Do you have any idea ?

Using latest version of cesium

What is the status of using this with the latest version of cesium? And what is the minimum version we need to use to get this running with GeoServer terrain

Not compatible to Cesium 1.105

I am currently trying to use geoserverTerrainProvider with Cesium version 1.105.0.
I am aware that geoserverTerrainProvider has been only tested for Cesium 1.95, but I still wanted to try it.

It appears that I have the error "cannot add property GeoserverTerrainProvider, object is not extensible (at index.ts:86)."
Maybe would you know how to bypass this error?

Thank you!

make GeoserverTerrainProvider provider work

Hi
I would be happy if you could help me make the provider to work
I encountered problems:
1 . After I installed the server, geoserver could not tackle the problem of the CORS solution I found is the disable CORS in browser.level
I would be happy if you could tell me how to overcome it at the server level
2. the WIKI example does not work for version 26 , I made the necessary adjustments
3 . Once I solved it I get the following error "Resource interpreted as Image but transferred with MIME type image / tiff: "http://localhost:8086/geoserver/cite/wms?SERVICE=WMS&REQUEST=GetMap&layers=…42857143,1.4285714285714286,91.42857142857143&crs=CRS:84&format=image/tiff".
An error occurred in "GeoserverTerrainProvider": Failed to obtain terrain tile X: 0 Y: 0 Level: 0.
I would be happy if you could help me by guiding me how making it work?

If you have an example you can send me an email it would really help me
also if you can upload example of the server with a specific SRTM that working for you it will help me a lot

thanks

Please confirm runtime requirements

Hi there,

I have been attempting to get your terrain provider working for geoserver and I would like tyo ask can you confirm that this works with Cesium 1.37 and Geoserver 2.11.2 ?

Regards

BBOX is outside of WGS84 limits

Hi!

I am trying to load BIL data from geoserver, but templateToURL(urlParam, x, y, level, provider) function attaches wrong bbox values to URL (see screenshot bellow). What can be the reason?

image

P.s. Cesium version 1.33
P.p.s. Let me know if you need more details!

Thank you in advance!

can't get response from geoserver

In accordance with the above, But can't get response from geoserver; Maybe the url has some problem, Could you show the url ;

thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.