Getting Started

I’m a land surveyor based in Melbourne, Australia, and I’m currently exploring the use of Cesium as a new deliverable for my clients. In my line of work, we use drones to capture 3D data, and I’m trying to figure out the best ways to deliver this data to our clients.

After looking into it, Cesium seems like a great option, but I’m having trouble understanding the entire ecosystem. I’ve followed the Cesium Ion stories tutorials and have a lose grasp of them, and I’ve also created my own apps using the Cesium JS tutorials, but I don’t know how to move forward.

How do I create a viewer and then use it in Ion?

Ultimately, I just want to make a few tweaks to the viewer and share the data with my clients. If anyone could outline what I need to do, either in broad strokes or in detail, it would be a great help. At this stage, I feel like I don’t even know how to ask the right questions.

Thanks everyone

Sort of depends on what you’re trying to do, what data you’ve got, and how you serve it. When you say “share with the client”, do you mean delivering the raw data file(s), or showing them what you’ve got, or both, or more?

Raw data needs to be converted to something that can be used by Cesium, for example a pointcloud in a LAZ needs to be tiled from raw data into 3D tiles. Next step is to put your app and your data on a webserver that both you and your client can access (and any security stuff you want to throw in there), for example a cloud server or bare metal set up for this stuff.

Cesium Ion is a way for you to upload and access your tiled / converted / transformed data, and you can either make your own app or share a link or mini-app from the app (Ion resources can be accessed through a Ion API identifier). is similar, and other services exists as well.

Since you’re going down the Cesium route, I’m thinking you want to develop your own solution for this? And place your app and data on a webserver? Are you thinking of the workflow from raw data to presentable data in Cesium?


Alex (Kiama :slight_smile: )

Hi Alex, Thanks for the reply!

To clarify. I’m not trying to deliver the raw data to a client. I can already do this through Google drive or WeTransfer or something similar. The issue here is that most of my clients cant or dont want to download any new programs to use the data. I’m looking to cesium for a solution here.

My vision is to be able to upload data to be used in conjunction with a viewer so that the 3D models can be used in meetings and discussions easily. Cesium appeals to me because of the customizable nature of the viewer (which is also a challenge for me at the moment). Having a viewer that has only what our clients need and nothing they dont with our company logo at the bottom is a dream.

Im across uploading data to Ion, although I could only get obj’s to work and I have to place them manually. Any advice on a format that will geo-reference itself in Ion?

Currently, my best solution is to upload data to ion and basically create a dummy story and then share that with a client. If I could work out Geo-referencing and customizing the viewer I would be there. It feels like I’m so close! but maybe thats not what Ion is for.

Do I have the wrong idea about what Ion is? it seems like the other route is to make my own webserver, a path that seems like more work but its a path I can see.

Cesium Ion is a way for you to upload and access your tiled / converted / transformed data, and you can either make your own app or share a link or mini-app from the app (Ion resources can be accessed through a Ion API identifier).

Is this saying, I can write an app (hosted by myself) that can use data I have uploaded to Ion through the token feature?

I hope this makes sense. Thank you so much for your response.

Hi there,

No worries. A lot of this comes down to what sort of data you’ve got. You mentioned geo referencing, are you talking about CAD stuff? Or are these mesh models? What are the raw data you’ve got? I’m assuming you do your own process, maybe accuracy? Often it comes down to tools and data. Some things are easier to digest in Cesium than others. You can import models directly, or tiled versions of models, referenced or not. Often systems assume the geo referencing has happened before it hits Cesium, because it can be tricky depending on coordinate systems, geoids and so on. Often it’s relied on the uploader being the expert.

There are ways to do this, of course. You can detect OBJ files coming in and whether they have the metadata (geo referencing) in place, and if not you can ask for it, and do an additional processing step before sending the data to Cesium. I don’t know what Ion offers in this regard.

As to what I think you need, you can interact with these systems through an API where you programmatically can create whatever you need in order to share your data. For example, write a script that grabs the data, process it the way you need it (geo referencing, tiling, etc.) then using the API to upload the data, create a story and make you a link. I haven’t done this through Ion (apart from small bits of the API), but we do it all the time (through our own system). I am working on the next generation internally that will do everything you want, but I’m afraid it’s some time away still, we still use the concept of projects and scenes and share links to do the same (still through an API).

As to your last question, yes. You upload the data to Ion, that piece of data gets an identifier (and it will be processed/tiled/prepared the best they can), and in the Cesium API (the app you make) you can say “load this data item”, and it just works. If you’re dev savvy you should be able to make a small app that you host somewhere with an input text field where you type in that number, and you’ll get a Cesium loaded version of that uploaded data, bar security issues. A more complex version of the same could upload and create the stories, etc. as well.

Hope that helps.



Actually, replying to myself; I’ve got an old prototype lying around somewhere that pretty much does what you need, I’ll see over the weekend if I can blow some dust off it.



Omg, That would be amazing. If love to have a look. Work and life getting in the way of this project at the moment but I’m so so keen to make progress on this.


Yeah, I actually found some old code, just rewriting a bit of it to fit the deploy patterns of AWS, and I’ll pop it up there for you to give a test. I even called Ion Cannon. :slight_smile: I’ll let you know.



Hi there,

Sorry for the slightly delay, just super-busy at the moment. I polished it up, rewrote a few parts, and popped it on an obscure address (for now; if useful I might move it to somewhere less crazy-sounding);

I haven’t done any extensive testing on it, there might be all sorts of quirks and oddities (especially around error management of resources), but (for me) it does what it says on the tin; you can create any number of lists, with any number of resources in them, plus a share link per list.

Note that nothing is stored in a database, I’m just using your local browser’s hash store. Share links, too, are simply hashed and embedded links, so deleting a list will not delete the shared link itself, only the list on your browser. For usage data, log into your Ion account.

Give it a spin, and let me know. Might be worth extending a bit and do better error detection / handling if it’s a useful tool.



@Abeckett I just pushed a fixed / updated version, hopefully that works better. Let me know if it works for you.



Hi Alexander,

Thank you for your time, I’ve managed to make a viewer that works as required, Im now hoping to add some measurement tools to it. ones like those present in Cesium stories. Any advice there? It appears as though I need to purchase the ION SDK. I emailed them explaining I was after the measurement tool. they responded by saying they didn’t understand and that if I have a technical question I should email tech support. I responded telling them that I wished to use this tool,

Measure - Cesium Documentation

And, I took my lead from this forum post.

any advice on this situation?

Thank you.


Well, I’m not Cesium Corp. so that’s with them. Measurements is not that hard, but it does require some development. I might have some plugins for it, but not in the tool I shared with you. I could look into if that’s possible, just a bit busy at the moment. Also, make sure you’re not adding and adding to your list; in the end, there might be some tool out there that has it all that you could use instead. Development is tedious and costly. :slight_smile:



Hi @Abeckett,

The Cesium ion SDK does contain measurement tools. Was your email to That’s usually the best way to purchase license if that’s what you’re looking to do.

Hi Gabby,

I emailed sales from the link through the SDK information page. They told me they did not understand my request I supplied more information and they never got back to me. I emailed them again asking for a response and am yet to hear anything.

Could you please help?