I am developing a CesiumJS web application with a 3D globe, using terrain and a WMTS raster overlay service from GeoServer.
Now, I need to display imagery stored in a MinIO S3 bucket on my CesiumJS web app. The imagery is stored as .tif with .ovr (overview) files in MinIO. However, when I try to load the .ovr imagery tiles, they do not display or seem to be unsupported by CesiumJS.
Has anyone successfully loaded MinIO-stored OVR imagery into CesiumJS?
Do I need to convert .ovr files into a different format compatible with CesiumJS?
Is there a recommended workflow or middleware solution for serving these tiles correctly?
Any insights, working solutions, or best practices would be greatly appreciated! @Kevin_Ring @Matthew_Amato
I am not currently aware of any possible workflow or middleware for streaming OVR directly to CesiumJS, but I should add the caveat that I am not familiar with OVR, maybe other community members or Kevin who you tagged will chime in with more information.
@Luke_McKinstry Thanks for your kind response.
If you found any other related or helpful info.Do share with me.
Really appreciated.
In another web application using OpenLayers, a TIFF with .OVR (overview) files is displaying correctly on the map. Can we use OpenLayers on a CesiumJS 3D map?
Am I understanding correctly that you’re trying to use statically-hosted TIF and OVR files separately from the (working?) WMTS server? Perhaps as part of some sort of COG?
If so, you’re right, CesiumJS doesn’t have support for that. See this CesiumJS issue requesting direct support for COGs in CesiumJS, which you may want to star if it would be valuable for you:
That issue mentions this third-party plugin that claims support, but I haven’t tried it and can’t vouch for it:
Starting with a GeoTIFF, the easiest way to get it into CesiumJS today is by uploading it to Cesium ion as “imagery”. Cesium ion will then serve the tiled version back to you using TMS or WMTS. You may also be able to use something like gdal2tiles.py to create a statically-hostable TMS server from a GeoTIFF.
The TIF and OVR files are separately hosted on S3 MinIO storage.
MinIO S3 stores TIF files and serves their external OVRs, but not as COGs.
The actual issue:
You’re somewhat correct, but not quite addressing my main problem. I have a similar working web app where I use OpenLayers to access TIF.OVR imagery stored in MinIO. In this app, you can draw a rectangle, and it fetches all available imagery, displaying it as .TIF.OVR for fast rendering.
However, when I try to load the same imagery in CesiumJS, it doesn’t work—even though I’m using the same requisites and parameters.
Could you help me understand how to properly use OpenLayers for CesiumJS so I can implement a similar solution in CesiumJS? or maybe a different solution that can work out for me.
Could you help me understand how to properly use OpenLayers for CesiumJS so I can implement a similar solution in CesiumJS?
If I am understanding correctly this is a mostly different question than your original post regarding loading OVL files using Cesium’s WebMapTileServiceImageryProvider class. Is that right?
Regarding Open Layers, we do not have any built in Cesium classes I am aware of to facilitate using them together, but there is a 3rd party tool (which we do not maintain ourselves) for using Open Layers with Cesium called Ol-Cesium Switch 3d in openlayer with cesiumjs or ol-cesium