CesiumGS / CesiumGS/cesium

Update Cesium Viewer to work with 3D Tiles

Open
#7,642 2 comments 0 reactions 0 assignees View on GitHub
category - sandcastle type - roadmap
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

The [Cesium Viewer](https://github.com/AnalyticalGraphicsInc/cesium/tree/master/Apps/CesiumViewer) app is a pretty awesome example of what you can do with a few bells and whistles in CesiumJS, but it's also pretty useful as a standalone app in itself. For example, you can find any view of any data on the Earth and save and share that just by sharing the link.

We can do a few more small things that I think will have a big impact in making it easier to work with 3D Tiles.

* [ ] Change the query parameters to hash parameters.
* This will allow us to use the URL to update the state of the app without having to refresh. This is cool because it lets you bookmark views or share/change views without having to reload everything.
* [ ] Change `camera.setView` to `camera.flyTo` after the first load.
* This looks amazing when you have a few views bookmarked that you're flying between with a click of a button.
* [ ] Add `token` parameter that takes an ion token.
* [ ] Add `id` parameter that takes an array of ion asset IDs.

With just this, you could upload some massive data to ion, have a link like the "open in Sandcastle" except open it in the viewer app, and you'd instantly have a published viewer app you can actually use yourself for any analysis, embed on your website, share with collaborators etc.

You could also use this to pretty easily view multiple tilesets in the same view, or easily compare the same view in two different tilesets by swapping out the `id`.

One more thing that would be incredibly useful is:

* [ ] A "% loaded" in the bottom right to tell you how many tiles still need to load.
* I often look at a scene, and I'm not sure if it's finished loading yet, if it's frozen etc.
* Could become a widget you can add, a Sandcastle example, or just be in the viewer app. The globe and 3D Tiles already have ways of reporting progress, so this would just be hooking into that.

This is all prototyped in this Glitch app:

https://glitch.com/edit/#!/cesium-viewer?path=README.md:1:0

Contributor guide

Open the contributing guide

Research direction

Start with the Apps/CesiumViewer application linked in the issue and review the prototype's Glitch README. Determine how the requested hash parameters, camera transitions, ion token and asset IDs, and loading progress fit together; done means the checklist is implemented and the viewer reports tile-loading progress.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.