Failed to obtain terrain

I make .terrain data.

And the data was serviced using cesium.

However, hardware occurs in the web service.

Please tell me why

**

> An error occurred in “CesiumTerrainProvider” : Failed to obtain terrain tile X:0 Y:0 Level: 0.

**

Hi @11167,

It’s hard to diagnose the issue with this little information. What terrain data are you trying to process? How did you create the data? Are you able to run the Cesium World Terrain Sandcastle without errors?

Thanks,
Eli

using cesium-terrain-builder
I have created .terrain data.

The data used as terrain data is compressed and sent.

sejong_dem_3.zip (817 Bytes)

when I created own terrain data I found out:

  1. be sure that exist layer.json and both zero level tiles
  2. that generated terrain files are ziped (gziped). If you are using their content directly it is invalid format in cesium. Use Content-Encoding: gzip in response header of your service provider or unpack them and then use content of these files.
1 Like
  1. be sure that exist layer.json and both zero level tiles
    → yes there is
  2. that generated terrain files are ziped (gziped). If you are using their content directly it is invalid format in cesium. Use Content-Encoding: gzip in response header of your service provider or unpack them and then use content of these files.
    ->Please provide a little more detailed explanation.And what program did you use?

To create terrain tiles I also used cesium-terrain-builder.

If you are using TerrainProvider with url: Cesium.buildModuleUrl(<path to directory>) to access files directly, you have to unzip terrain files. Provider reads content of file directly and it tries to use it as terrain data. So compresion casues invalid format. It is like opening zipped bmp file in MS Paint. It will not work.

To provide terrain files I use my own python script based on SimpleHTTPServer module and TerrainProvider url is localhost with port. Script itself is simplified version of file provider (section Returning Dynamic HTML) resp. this (mainly do_GET and do_HEAD) where i set encoding in header and response content is content of terrain file.

Easiest way to test if terrain is compressed is to change extension to zip and try to unzip it.

Btw: I find this because I tried quantized-mesh-viewer to investigate problem and tile.html can’t load terrain file if it is compressed.

And sorry for late response I didn’t have set notifications.

1 Like

Hello, why is there only one zero level tile produced by Cesium for builder

Are you using correct cesium-terrain-builder? Use tum-gis/cesium-terrain-builder and not geo-data/cesium-terrain-builder . Read section Create Cesium Terrain files in tum-gis link (param -C to create tiles suitable for cesium (that produces both zero level tiles) and -l to create layer.json)

There are levels 0 to 18.

Thank you.

I use GitHub - tum-gis/cesium-terrain-builder-docker: Dockerfile for the geo-data/cesium-terrain-builder app with quantized mesh support. content

I created a terrain.

But even now the data goes up, but it was found that it was broken.

Have you ever seen terrain breaking?

I use GitHub - ahuarte47/cesium-terrain-builder at master-quantized-mesh (parameters - C -l set ) layer.json and both zero level tiles exist,
but i need I need to complete each level for cesium for unreal,
So do you have any good ideas

I do not have experience with unreal. However if you want to have tiles for whole world, I suggest that you should modify your terrain server provider (or requests). E.g. provider could return some generic tile if terrain file doesn’t exists. Just be aware that layer.json contains information about what tiles are present on storage. Cesium (as i was using it) doesn’t request tiles outside defined areas.

I would also mentioned great tutorial that I used to learn about terrain.