Cesium and Mapbox: how to have the same nice feeling?

Hello,

we are looking for a map service for our projects, and we really like Cesium for its API and because it’s really simple to get a 3d terrain.

At the same time we like Mapbox for its raster images quality, and for its “smooth” user interaction.

We are actually testing Cesium with Mapbox as imageryProvider, but we don’t know if is possible to achieve the same "smooth and nice feeling"

as in Mapbox.

We did 2 test to compare the products:

With Mapbox:

http://issimissimo.com/test/mapbox.html

  • when you zoom in our out the new map tiles for the new zoom level are loaded with a fade-in effect

  • if you change the heading/pitch of the camera, and you zoom in, all the map tiles (until the horizon) will be replaced (with fade-in effect) with the right ones to ensure a constant quality of the overall map.

With Cesium:

http://issimissimo.com/test/cesium.html

  • when you zoom in our out the new map tiles for the new zoom level are not loaded with a fade-in effect

  • if you change the heading/pitch of the camera, and you zoom in, only the nearest tiles will be replaced (without fade-in effect) with the right ones. So often times the overall map will have a quality break very much visible.

In attachment there’s a picture to show better what I mean.

You can see the picture also at http://issimissimo.com/test/cesiumVsMapbox.jpg

So, is there a way to:

  1. load new map tiles with fade-in effect?

  2. get a good coverage of new map tiles for the new resolution (zoom level) so not to have too much visible map break?

Many thanks!

I think alpha blending levels of detail is a really good idea! We’ve been working on something to do that for 3D Tiles, but having it work for imagery as well would be great, so I opened a feature request here: https://github.com/AnalyticalGraphicsInc/cesium/issues/8140

For your other question about a consistent map quality, this is actually a “feature not a bug” in a way. Notice how the Mapbox map cannot tilt beyond a certain angle, because there would be too many tiles in the horizon to load, whereas the CesiumJS map is not limited to this because it can load varying levels of detail across the view.

You can tweak the tolerance for the quality levels of imagery layers by setting viewer.scene.globe.maximumScreenSpaceError. It defaults to 2, but setting it to 1.5 or 1.2 should trigger higher levels of detail without having to zoom in so close. Setting it to 1 will load the highest available level of detail, but isn’t recommended for the issue I described above (if you tilt all the way to the horizon, you don’t want the map to load the hundreds of thousands of tiles it would take).

What kind of project or application are you working on with Cesium?

Thank-you for your reply Omar,
I’m new to Cesium and I didn’t know about viewer.scene.globe.maximumScreenSpaceError, that’s what I need!

Indeed alpha blending levels of detail would give in my opinion a really professional feeling.

We are working on a couple of projects with 360 degrees videos synconized with maps, for bicycle tourism and for car driving.

We made a mockup with Unity (for bicycle tourism) that you can see here

https://vr.alicefit.com/demoWeb_02/Itinerario%20Castellania%20Oropa%20-%20Tappa%201%20Da%20Acqui%20Terme%20a%20Ovada.html

Now we are moving our applications to js for better performances (expecially on mobile)