CesiumGS / cesium

An open-source JavaScript library for world-class 3D globes and maps :earth_americas:
https://cesium.com/cesiumjs/
Apache License 2.0
12.95k stars 3.49k forks source link

Load LERC Elevation-Terrain Tiles from tile server (XYZ) not just from ImageServer - ArcGISTiledElevationTerrainProvider #10472

Open techmavengeospatial opened 2 years ago

techmavengeospatial commented 2 years ago

If ESRI has their data available like this http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer/tile/{z}/{y}/{x}.lerc2 why can't I serve data to Cesium like this? http://someip:port/folder/tile/{z}/{y}/{x}.lerc2

https://github.com/CesiumGS/cesium/blob/3601fc73247ab3526c4f18be38ccc8c1860a541b/Source/Core/ArcGISTiledElevationTerrainProvider.js#L63

https://cesium.com/learn/cesiumjs/ref-doc/ArcGISTiledElevationTerrainProvider.html https://github.com/CesiumGS/cesium/blob/main/Apps/Sandcastle/gallery/ArcGIS%20Tiled%20Elevation%20Terrain.html https://cesium.com/learn/cesiumjs/ref-doc/Resource.html

I've produced my own LERC tiles and I need to have an on-premises/within firewall and mobile solution convert Gridded GeoTIFF Tiles to LERC with this C++ Code GitHub - DaYeSquad/tif2lerc-cpp: Convert tiff to esri lerc format convert Gridded GeoTIFF Tiles into LERC with Pyton code from ESRI GitHub - Esri/lerc: Limited Error Raster Compression

techmavengeospatial commented 2 years ago

Reference also Terriajs we use Terriajs in other projects https://github.com/TerriaJS/terriajs/discussions/4890

ggetz commented 2 years ago

Hi @techmavengeospatial,

From those threads you linked, there seems to be a problem when Cesium requests the first tile at level=0, Y=0, X=0 and that tile is not available on the server, so the request fails. Due to the failure, Cesium stops requesting tiles. Here's a sandcastle showing this behavior.

Do you have an example with your own data, or can you confirm that's the case with your own data?