Hi @Baris_Sarac,
Thanks for you post and being a part of the Cesium community. Here are some hopefully useful answers to your questions.
Additionally, can Cesium access maptiles itself without needing to spin off a nodejs server that requests maptiles like /api/tiles/{z}/{x}/{y} constanly in the background, can I setup file/folder structure locally for cesium to find/locate images of map areas itself?
You can serve 3D Tiles or other resources like glTF files, etc. to be consumed by a runtime like CesiumJS from the same file/folder structure as your application. This is a common setup for development environments and small applications. Here is another thread discussing this topic for more context and guidance Hosting glTF Tileset of 3D Tiles v1.1 by standard web file server - #3 by mdc9001 You do need to serve these files over http/s for browser security reasons.
Also, is it possible to do this in 3D. Currently Cesium works 3D with internet connection, I want local offline mode Cesium with no internet connection that behaves identically to the Cesium that connects online, is this possible?
You can use 3D in Cesium without an internet connection. For example the following will load a 3D globe without pulling any data from Cesium ion or other online sources.
const viewer = new Cesium.Viewer('cesiumContainer', {
baseLayer: false,
baseLayerPicker: false, // Remove the base layer picker if you don’t need to switch layers
terrainProvider: new Cesium.EllipsoidTerrainProvider() // Use a simple ellipsoid terrain
});
To get a more exciting visual than a simple ellipse, you can load files containing imagery, terrain, 3D tiles, etc locally as shown above in the response to the previous question. One option for getting a terrain layer to host and serve locally is to use an open source tool like GitHub - geo-data/cesium-terrain-builder: A C++ library and associated command line tools designed to create terrain tiles for use in the Cesium JavaScript library to build a terrain dataset.
Imagery, terrain, tiles, etc. that span the globe are pretty large, which is why it is often most convenient to stream them into an app from somebody else’s server, like Cesium ion or OpenStreetMap.
const viewer = new Cesium.Viewer('cesiumContainer', {
baseLayer: new Cesium.ImageryLayer(new Cesium.OpenStreetMapImageryProvider({
url : 'https://tile.openstreetmap.org/'
})),
baseLayerPicker: false // Disable default base layers if you only want the Carto basemap
});
One offline option Cesium also has is Cesium ion Self Hosted Cesium ion Self-Hosted – Cesium which is a paid service.
I hope this helps answer your question. Please feel free to follow up.
Thanks,
Luke