Google Earth Enterprise TerrainProvider not rendering tiles in 1.92+

My team is using a Google Earth Enterprise Server to host our Terrain and Imagery data. We recently stepped up to version 1.97 of Cesium from 1.84. We are now having issues with Cesium rendering a distorted (quilt-like) image, or empty black space when we zoom into areas with higher resolution data. There are no errors logged to console to indicate any issues. Network tab seems to fetch the tiles just fine (return code 200).
UPDATE: Tested all versions between 1.84 and 1.97 and first version this happens on is 1.92

When I comment out the terrainProvider, the imagery for those higher resolution areas are loaded properly. But obviously, I don’t have terrain data.

// 1.84 - 1.97
// options.terrainProvider = new Cesium.GoogleEarthEnterpriseTerrainProvider({
    //   metadata: geeImgMetadata
    // });

// 1.113+
/* viewer.scene.terrainProvider = await Cesium.GoogleEarthEnterpriseTerrainProvider.fromMetadata(
        geeMetadata
      );
*/

I have also tested with several other newer versions, including 1.113, 1.114 and the latest (1.118 at time of writing) and see the same results.

I am using a GoogleEarthEnterprise server and can easily reproduce this issue on a Earth Enterprise Portable Server using the demo globe data provided by the EarthEnterprise server (tutorial_sf.glb). I can’t attach the tutorial_sf.glb file because it is > 30MB.

Screenshots:
High altitude zoom level where imagery appears prior to zooming in:

Quilt-like rendering when I zoom in one or more level(s) (using scroll wheel):

Empty Space rendered when slightly more zoomed in:

Thanks for all the great support in the past. I look forward to your responses and/or questions/request for more info.

Cheers,
Cory

Maybe a better question here:
Does anyone know if Cesium still plans to continue to support GoogleEarth Enterprise Server even though the GEE project has been archived?

Hi @Corys_atTheBeach, we don’t have access to a GEE server, so it’s not easy for us to reproduce your issue.
Thanks for narrowing it down to version 1.92. Can you clarify which class is causing the problem? Is it GoogleEarthEnterpriseImageryProvider?
The only commit I can see around that time that touched these classes was Remove when.js and replace with native promises · CesiumGS/cesium@31c154a · GitHub.

Hey there @jjhembd! Thanks for the response!

I believe it is in the GoogleEarthEnterpriseTerrainProvider because when I comment out the terrain provider (see below snippet), my imagery loads fine. But I’m not sure how the internals of that class work.

   /// Cesium 1.97
   options.imageryProvider = new Cesium.GoogleEarthEnterpriseImageryProvider({
      metadata: geeMetadata,
      proxy: new Cesium.DefaultProxy("/proxy/")
   });

   // options.terrainProvider = new Cesium.GoogleEarthEnterpriseTerrainProvider({
   //    metadata: geeMetadata
   // });

I am using an NPM install of Cesium. Should I try running from source to troubleshoot myself? I’ve never done that, but could give it a go if that’s something you recommend. I’d also be happy to provide some simple instructions for you all to set up a GEE portable server. But I’m also happy to just stick to the testing.

Thanks again for the response!

Cheers,
Cory

I went ahead and created this issue. I will try to spend some time on my own looking into it.
I was able to check the latest version (1.123.0) and add some logging. I attatched to the issue as geeError.log

1 Like