New Tutorial: Visualizing Spatial Data

Improved documentation and tutorials was one of the items brought up during the 2015 roadmap discussions, so as part of the huge 1.6 push, we also wrote a new tutorial, Visualizing Spatial Data. It is meant to serve as many users’ first dive into the Cesium API. It is almost exclusively based around the revamped Entity API, also introduced in 1.6 and should be incredibly beneficial to new and veteran users alike. If you have a moment, please check it out and provide feedback in this thread

http://cesiumjs.org/2015/02/02/Visualizing-Spatial-Data/

We’re hoping to use any feedback you provide to guide future tutorials as well as help us go back and update existing ones.

I don’t want to taint anyone’s opinion too much, but as the author of this specific tutorial (and with a part two already planned) I’m personally curious about the answer to some of the following questions:

  1. Was the mix of code and explanation a good balance?

  2. Do you like the fact that we rely on Sandcastle for interactive snippets?

  3. Do you find the links to the reference documentation throughout the tutorial useful?

  4. What did you think of the order of the material? Should we have covered some things before others?

  5. Did we gloss over any details you think should have been more thoroughly covered?

  6. …or spend too much time on any specific area?

Thanks,

Matt

Its awesome. I read the first few sections and realized how long it is and have to postpone reading the hole thing. But what i concluded was. Now I have a place to go find what i need and scrolling over it I saw a lot of examples of solving the basic stuff that one almost are doomed to ask questions about when first starting to work with cesium. Good job. Looking forward to read the rest and upcoming similar posts.

To me its very important that you keep relying on sandcastle. Being able to open it and puzzle with it my self and change a few things and see that I understand things.

Links to documentation didnt work. http://cesiumjs.org/Cesium/Build/Documentation/PolylineVolume.html

Nice post.

Follow up question or request.

Looking at the Matrials and Outlines sections I am wondering if something that i been thinking about for some time is possible.

We are working with a lot of aerial photos which typical has been recorded with a gps position and optional roll,pitch,heading measurements.

For each image we can eastimate its bounding box of the image frame on the ground. Simple version is just based on a flat surface model and given the altitude of the camera and its focal length, and complex version is doing the full ortho rectificcation where the pixel value for each sample on the terrain model is sampled.

To be able to give the user a fast preview in the simple model, i was wondering its possible to extend on

ellipse.material = '/images/2015/02-02/cats.jpg';

``

to work with small tiles of an image. (many of the ortho photos are rather large, so we keep a 256x256 tiled version of the images (pixel coordinates)). Tools like gdal2tiles can generate those.

Can you point me to where to start If I was to develop such a “Matrial” that can take a url like /{z}/{x}/{y}.png.

If you was to make such a thing, how hard would you rate it to be?

Thanks, maybe I should have added “Is it too long?” to the list of questions :slight_smile:

For the imagery question, I’m not really sure what you are asking. The material property itself can’t geo-rectify the image, it only controls how already defined geometry appears. If you have the z/x/y of a single tile, you should be able to get the rectangle for it using the TilingScheme, for example WebMercatorTilingScheme, and then easily show a single image on the globe, which can be done easily with SingleTileImageryProvider If you didn’t want to use the imagery provider for some reason, you can use entity.rectangle with the coordinates property set to the image bounding box and the material set to the url of the image, but I’m not sure that would work as well as the SingleTile provider.

Hope that helps.

Best Cesium tutorial I’ve seen. And as a newbie I feel it was targeted at me. Thank you. I found the code/explanation balance thorough and, more importantly, clearly written. Sandcastle is a wonderful resource. I benefit from seeing, even if commented out, the syntax for how each method/member relates to its object. Details I hope to see covered in Part II include discussion about time intervals and entity collections. Cheers, erik

I am assuming that the WebMercator and SingletileImageryProvider are for when you have tiles that are geo positioned correctly accordin to the tiling scema.
Then you showed how one could use a ellipse and give it a url to an image, which would then be drawn within the ellipse.

My question was then, if i took a rectangle instead of the elllipse, gave it a url i would be able to show the image inside this rectangle. So, lets say that the image is a 40mb jpeg image that I really dont want the user to download because in most cases he would not even zoom in to get that detail. (the image dont have any geospatial position, we are just showing it within this rectangle) I then wanted to know if it would be possible to given the rectangle to also give it a url with tiles that it should use instead of a full image.

But i will take a look at the links you provided. Thanks again. The post was not to long given that we was missing all the information given in it :slight_smile: Might be worth braking up the upcoming posts.