geo-data / cesium-terrain-server Goto Github PK
View Code? Open in Web Editor NEWA basic server for serving up filesystem based tilesets representing Cesium.js terrain models
A basic server for serving up filesystem based tilesets representing Cesium.js terrain models
I have followed the guideline for making the tilesets in both formats like quantized mesh and height maps after making the tilesets I have mounted my local directory to the docker container for see the elevation inthe browser but I am getting the response
Page 404 not found any leads can help me out how can I do this
docker run -p 8080:8000 -v /home/muhammad/Downloads/TerrainData/terraindata/tiles:/data/tilesets/terrain geodata/cesium-terrain-server
How I make the data mounts to the docker and I am able to see it inthe attached docker container directory but when I try to enter the URL localhost:8080/tilesets/terrain/
getting the 404 error code
Thanks
I ran into a problem regarding the layer.json
that is handed out by the server. Currently the available
array is removed from the sent json object. This prevents CesiumJs from rendering the terrain. A fix for testing is to manually add the available field in node_modules/cesium/Source/Core/CesiumTerrainProvider.js
in the function parseMetadataSuccess
to the data
object.
I'm using docker in windows 10.
I have used the following steps:
docker run -p 8080:8000 -v "${pwd}/tilesets/terrain:/data/tilesets/terrain" geodata/cesium-terrain-server
After this I'm accessing it in: http://localhost:8080
Terrain data:
My name is francis.i try to implement a Cesium application with terrain data.
We found your cesium terrain server and Cesium Terrain Builder on GitHub .that is great
for beginners such a useful tool.however, i start your cesium terrain server
step by process its work fine on me but after using Cesium Terrain Builder ctb-tile command
using .tif file to tiles its generating fine after that how i visualize tiles file in cesium though layer.json file is missing
can u help me..
https://api.maptiler.com/tiles/terrain-quantized-mesh/?key=<my_key>, I have that URL, so i am asking If it is possible to do something like follwoing:
cesium-terrain-server -dir https://api.maptiler.com/tiles/terrain-quantized-mesh/?key=<my_key>
and if it is possible, how will the localhost URL will look like ?
It seems that there are some changes on master that haven't made it into a tagged release on DockerHub. I need some of them to resolve the issue with the layer.json always getting the default even when you specify options. I am building it locally right now and using our artifactory but it would be awesome if we could pull from DockerHub. Thanks!
Draw the picture through canvas, set it to the material of ellipse, and enlarge the map material to see the sawtooth, how to solve the sawtooth problem.
Hello,
I've been using cesium-terrain-server to serve my height-map tiles that i created with cesium-terain-builder and it worked really fine..
However, now I would like to try improve performance and quality and use quantized-mesh-tiles instead of height map tiles. I understand that with cesium-terrain-builder it's not possible at the moment to create quantized-mesh-tiles but I wonder if cesium-terrain-server could serve those type of tiles (in case i already had them) ?
I read somewhere that quantized-mesh tiles follows the same tile structure as heightmap tiles but I am still not sure if it makes difference for cesium-terrain-server.
Thanks
In order to have terrain on a HTTPS-enabled webpage, we need even the terrain requests to go through SSL. Is there an option or a simple modification for this?
So have run the command as follows:
docker run -p 8080:8000 -v /data/docker/tilesets/terrain:/data/tilesets/terrain
geodata/cesium-terrain-server ]
Data has been placed in the appropriate directory on the host and maps through to the container and is visible.
The demo app runs ok at http:x.x.x.x:8080/
However trying various URL combinations I get nothing more than a 404 error or tile set doesn't exist :-
x.x.x.x:8080/data/tilesets/terrain/0/0/0.terrain
x.x.x.x:8080/tilesets/terrain/0/0/0.terrain
All produce the same end result. Is there something obvious I am missing?
Thanks.
Hi,
It looks like I need to modify the GO server to do gzip for my custom tiles. I'd like to deploy the terrain server as it is via docker container as pulled from docker hub at https://hub.docker.com/r/geodata/cesium-terrain-server/ Any one know what should I do with my nginx reverse proxy setup so I can serve gzip terrain tiles for the my upstream Cesium Terrain Server?
I have my CTS container running at port 8088
docker run -d --name CTS -p 8088:8000 -v $TILEPATH:/data/tilesets/terrain geodata/cesium-terrain-server
and create a little nginx config
server {
listen [::]:80;
listen 80;
server_name myterrain.mydomain.net;
location / {
gzip on;
gzip_types application/octect-stream;
proxy_pass http://tiles;
proxy_http_version 1.1;
}
}
upstream tiles {
server 127.0.0.1:8088;
}
It is not working, but if I put a gizp respond filter on the go source code like https://github.com/NYTimes/gziphandler , and run it outside of docker work. Can anyone help?
I have a Node.js server running Cesium Apps in port 8080: http://localhost:8080/Apps/own_terrain.html
Path for the html file is:
C:/Users/username/Downloads/software/Cesium-1.53/Apps/own_terrain.html
The terrain files have been generated by using: cesium-terrain-builder-docker
I just took as input a sample DEM in format tif (EPSG:4326) covering a small area in Europe.
Then, I want to run my terrain tiles using cesium-terrain-server in docker.
This is how I built it:
docker run -p 9000:8080 -v C:/Users/username/Downloads/software/Cesium-1.53/Apps/terrain:/data/tilesets/terrain
geodata/cesium-terrain-server
So, Cesium running in 8080 and terrain server in 9000,
I also added CORS functionality to my node server at 8080, but nothing has improved.
When I try to access the terrain tiles, i.e:
http://localhost:9000/tilesets/tiles/0/0/0.terrain
Nothing happens, Chrome says:
localhost didn’t send any data. ERR_EMPTY_RESPONSE
And the same when integrating that into the own_terrain.html:
Cesium.js:445 GET http://localhost:9000/tilesets/tiles/layer.json net::ERR_EMPTY_RESPONSE
What am I doing wrong?
Hi,
I just noticed that if I want to store sub-folders of data, e.g. /data/tilesets/terrain/srtm/2010
/ I am not able to reach them by using the route: http://localhost:8080/tilesets/srtm/2010/
.
This is actually normal as the server is build for a folder structure of depth=1 from the root tilesets folder.
Is it possible to make the server depth-agnostic from this root tliesets directory, so that we can separate different datasets in a clean way?
Thanks.
We have noticed a problem where if a tileset exists, the server will complain that it does not. Confusingly, the logic to check if the tileset exists is invoked only if the file requested does not exist, such as when asking for a nonexistant base layer or layers.json.
The problem seems to be this code:
func (this *Store) TilesetStatus(tileset string) (status stores.TilesetStatus) {
// check whether the tile directory exists
_, err := os.Stat(filepath.Join(this.root, tileset))
if err != nil {
if os.IsNotExist(err) {
return stores.FOUND
}
}
return stores.NOT_FOUND
}
It returns FOUND if there is an error, and NOT_FOUND if there is no error!
On executing the install command
gis@Vaio:~$ go install github.com/geo-data/cesium-terrain-server
I get this error:
can't load package: package github.com/geo-data/cesium-terrain-server: no buildable Go source files in /home/gis/gocode/src/github.com/geo-data/cesium-terrain-server
My data connection seems to be fine. Where are the source files to build.
I am executing from my home directory in Ubuntu LTS 14.04 and go is installed and working.
I was trying to install and run cesium-terrain-server from the Docker image, and for some reason the localhost fails to run. It seems like everything fires up ok though...
$ docker run -p 8002:80 -v /data/docker/tilesets/terrain:/data/tilesets/terrain geodata/cesium-terrain-server
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
*** Running /etc/my_init.d/process-env.sh...
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 11
But when I try to visit http://localhost:8002, there is no page there. I noticed that the most recent build of the server on Docker is reporting an error. Could that be the error or am I doing something wrong here?
cesium-terrain-server -dir F:\data\tilesets -port 8081
Dear Homme,
I would like to know in exactly which url of the server the terrains are served. To be more clear,
var terrainProvider = new Cesium.CesiumTerrainProvider({
url : ' ?? ',
});
what is the exact url to be inserted in CesiumTerrainProvider . I try to navigate the various urls of the server and ,looking at the code, i should suppose that the terrains are in urls with a similar structure of "localhost:8000/tilesets/{tileset}/0/0/1.terrain " but i don't understand what exactly correspond to {tileset} .
Sorry for the dumb question.
Thanks you and your team for the effort spent in the cesium terrian builder and cesium terrain server.
PS At the moment i can not use Docker
The problem is after adding the terrain provider also I'm getting a flat surface.
new Cesium.CesiumTerrainProvider({
url : "http://localhost:8080/tilesets/tiles",
requestVertexNormals : true
})
I'm using the docker image in windows 10.
The size of the tiff image was 2.72 gb and the size of build terrain data is around 150 mb.
I have used the following process:
docker run -p 8080:8000 -v "${pwd}/tilesets/terrain:/data/tilesets/terrain" geodata/cesium-terrain-server
http://localhost:8080/tilesets/tiles
this path.Here the screenshot:
Can anyone suggest me what I'm missing here.
I was using build cesium-terrain-server on docker hub until previous week. This week i noticed that automated docker build does not work properly, despite every configuration of my terrain (in quantized-mesh format) file seems right just as it is explained in Bert's tutorial page
(https://bertt.wordpress.com/2018/11/26/visualizing-terrains-with-cesium-ii/).
So, whenever i test my terrain file it is giving following error: "The tileset tiles
does not exist"
Do you know anything about this docker hub problem or do you have any suggestion about this error?
Hi
Installation via "go get github.com/geo-data/cesium-terrain-server/cmd/cesium-terrain-server
" isn't working.
When trying to download the project and run make I get this error
myMac:cesium-terrain-server myUser$ make
go get github.com/jteeuwen/go-bindata/... && touch /bin/go-bindata
touch: /bin/go-bindata: Operation not permitted
make: *** [/bin/go-bindata] Error 1
Please advise
Thanks
Hi,
I have run into some (incomprehensible) troubles while trying to follow the docker hub documentation (at https://hub.docker.com/r/geodata/cesium-terrain-server/ ) to execute the code from the docker image I pulled from there.
For example, if I map the port :80
nothing happens. Not even an error, just like if no communication occurs between the container and my localhost. I figured out that I have to map the port :8000
of the container to my host machine, which is not described in the documentation.
Another thing is that I was not able to found anything related to Apache within the logs (e.g. in /var/log
) on the container itself, yet the doc says:
Within the container an instance of the Apache web server serves up the relevant server side assets provided by Cesium.js.
Or:
All requests to the apache server are logged to /var/log/apache2/other_vhosts_access.log.
So I guess there is some inconsistencies between the docker image and its documentation.
Maybe it should be rewritten to fit the real behavior of the container (which actually seems to work really fine)?
What is the status of this project? There are a number of useful PR open for several years. The Docker Hub image has not been updated for 8 years and should not be deployed in any environment anymore.
Is there any alternative or people willing to fork and update this project?
Hi,
I know it's quite a stupid question, but I'm little bit stucked at this point. So I got tiles (made by using ctb-tile - i added screenshot of them) and I also created layer.json (I also added screenshot - is it correct? and where should I put this file? In folder with tiles or...? ). And I think I also need tiles 0.0.0.terrain (tile 0.1.0.terrain was generated itself). Where or how can I get this blank tiles? Thanks a lot!
Tom
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.