Offline support

I wanted to start using cesium control on my offline disconnected environment
its a private network without online connection at all

will Cesium encounter any issues or it's suppose to handle that kind of environment?

i have a GeoServer server in my network to get data from

thank you in advance


Cesium should work fine on a private network, though of course you can’t use the default Bing Maps imagery in that scenario. If you need terrain, you’ll also need to serve it from your own server. Interfacing with imagery on a GeoServer via WMS shouldn’t be a problem at all.


OK thank you
so i tried playing with it a bit in my offline environment and couldn't get it to work
i have a GeoServer server with WMS imagery layers..
i went to the SandCastle 'minimalist' project and added those lines in the end of the main function:

var layers = centralBody.getImageryLayers();
layers.addImageryProvider(new Cesium.WebMapServiceImageryProvider({
        url : 'http://(my server location):8080/geoserver/ows?SERVICE=WMS',
        layers: '(my layer name)'}));

in the url part i also tried 'http://(my server location):8080/geoserver/wms' like some examples...

all i`m getting is 'An error occurred in "WebMapServiceImageryProvider": Failed to obtain image tile'

what am i doing wrong?

I had no problems running Cesium in an offline environment.
All you need is to run it via Node.JS
I was able to see the Sandcastle, and run the "minimalist" demo.

Make sure you keep the original file paths for it to work with the supplied server.js file.

Yes, i made that working as well
I tried to add a wms layer to the WORKING minimalist example
I have layers of specific regions to add above the base layer

It’s hard to say what is going wrong, but you should be able to get more information using your browser’s debugging tools. Take a look at the request Cesium is generating and the response from your server, and see if they are what you expect. The network tab in the Chrome debugger will work nicely for this.

The most common problem we see is that your server is not honoring CORS requests. You can add CORS support to GeoServer using CORS Filter.



I'm using cesium with my offline disconnected environment


I’ve specifically created a web application with Cesium that runs on a private network connecting to GeoServer.

Cesium itself will only need to have an ImageryProvider created for your GeoServer instance and you should be good to go.

The only issue I ran into was CORS due to the ports mismatching. I was using Apache on port 80 and GeoServer was using port 8080. I solved this by configuring a reverse proxy on the Apache server so that http://<mygeoserver_hostname>:8080/geoserver was being served as http://<myapplication_hostname>/geoserver.

Reverse Proxies are possible using most current web servers and there is a lot of resources out there for setting them up based on whichever server infrastructure you’re using. For apache it’s usually a matter of adding 3-5 lines of configuration and ensuring the correct proxy module is enabled.

Hope that helps.