3D geo-applications with CesiumJS - data, possible use-cases and specifications
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Holthausen, Michael
Adams, Till
With the development of 3D applications related to geography, the standards and specifications for the provision of corresponding data are increasingly coming into focus. The presentation deals with the current development status of the CesiumJS library as well as the standards and possible uses of individual features and shows some examples from a recent project, in which we presented underground 3D geodata. Thus, this contribution can be seen as a renewal of our 2013 FOSS4G contribution entitled "Modelling 3D Underground Data In A Web-based 3D-Client". Not only are web-based open source 3D applications with a geographic reference constantly developing, but the development of standards and specifications for the presentation of 3D data on the web has also increasingly come into focus. A large number of libraries can be used for the representation on the web (e.g. x3dom, o3d, threejs, BabylonJS, Open GEE). Another library that has been growing steadily for several years is CesiumJS. This is used to process geographical questions in numerous areas. These include the real estate market, urban planning, sports or the various environmental sciences. In our talk we will present the current development status of the library and some possible use-cases of the features and data of CesiumJS will be briefly presented using projects as examples. A focus will also be placed on the requirements of the browser. In addition to the general availability and provision of data, the possible uses of individual selected features of the library will also be presented and discussed. When the world is represented digitally, corresponding data should also be placed there. Depending on the area of application, this can involve a relatively large amount of data, which is the case when dealing with underground data. Ideally this data should also be placed on the map in a simple way. There are already standards for the webbased-presentation of 2D-data in the web, new standards have been developed for the presentation of terrain, 3D models, buildings and point clouds as part of the development of CesiumJS. With 3D Tiles, an OGC community standard is now also available. Authors and Affiliations – Holthausen, Michael Adams, Till terrestris GmbH & Co KG Track – Software Topic – Data visualization: spatial analysis, manipulation and visualization Level – 1 - Principiants. No required specific knowledge is needed. Language of the Presentation – English
 Well, as I said before, welcome everybody. We're going to start with the session. Today the first one is about 3D geoplications with C-SOM-GS, data possible uses, use cases and specifications. We have a Tiel Adams here who is going to explain and speak about it. Tiel is founder of Terrestries. He used to join the OZEO community right from the beginning. Actually, he works as a consultant for his company. And also, Michael Houdousen is a developer of Terrestries. He works mainly in the field of 3D data visualization and run similar projects with C-SOM and as a core library. If you have any questions, you can just put it on the chat. Tiel is here. So after his presentation, he can answer any questions. Located in Zurich. We are doing software development for QJS. It deals with 3D geoplications. The core we're going to talk about is the JavaScript library C-SOM-GS. We're going to talk about the data, some possible use cases and specifications. First of all, I want to talk a little bit about us, the presenters, and also have one slide about the company we're coming from. Then I give you a general overview about the C-SOM-GS library. I'm going to talk a little bit about standards and 3D tiles. And in the last part of my talk, I'm going to talk a little bit about what people did with C-SOM-GS and what we did with C-SOM-GS. First of all, probably some of you might know me. I had the honor to chair the Global Phosphor G conference 2016 in Bonn. And in my job, I'm a shareholder of the company of Terrestris. I founded the company 2002 with my colleague. And I work mainly as a consultant and also agile coach. Let me also present Michael Holthausen. The talk I'm going to present today is mainly based on the script that Michael used. He presented the C-SOM-GS library on the recently held Phosphor G-SOM conference, which is the German-speaking OSTU local chapter. I proposed him to talk about C-SOM-GS on Phosphor G as well. And then we figured out that probably my English is a little better than his. So I'm going to present the talk here. But so that you could see at least his face. Michael is a geographer. He works, I think, nearly for two years now for Terrestris as an application developer. He's mainly involved in our 3D project. So he's a real expert. Short slide about Terrestris. As I said, I founded the company in 2002. And we directly from right from the beginning on started to offer open source G-Sys. So we understand ourselves as a service provider. We come from Bonn in Germany. In the moment we have 23 people in the company and two shareholders who, like me, we actually work in the company. Mainly we have developers. And our developers are also involved in other OSTU projects or open source projects. We work in layers and Geo-EXT. You heard the talk about Geo-Styler from a colleague, which is an open source library that headed origin at Terrestris formally. And also other open source projects, like Degree, do some stuff in Geo-Server and so on and so on. Okay. And of course, beside the normal 2D web mapping application, we have quite a few projects in the 3D world. And that's what I'm going to talk about now. So first I give you a general overview. What is CesiumJS? First you can say it's a virtual globe. Or better said, it's a 3D software model for the representation of the Earth or even other planets. You can free move in a virtual environment. You can navigate to any point of interest. You can change the view point from where you look at the globe. You can of course zoom in and out at different scales. So generally you can say Cesium offers a simplified model of the real world, like any map more or less does. But you have the possibility to display more precise details through zooming in. So the level of detail can increase if you zoom in. And we're going to see how to do that later in this talk. Of course you're able to display process data in form of map layers on top of each other, like you know. So in general you can say CesiumJS is for the 3D world a little bit comparable to what open layers is to the 2D world. Though of course the projects are kind of different from each other. I've loaded a CesiumJS application here just to give you an idea about what I'm talking about. So you can zoom in, zoom out, you can browse the globe with a mouse. You can even switch to a 2D map. Then you can switch back again to the 3D map. And if you look here, that's I think more or less a place where we all would like or love to be in the moment. And even just to show you that you can switch layers. So we are now in Buenos Aires and I changed the autofoto view to the open layers based layer. I got to show some more examples later on here, but this just to give you a short impression about that. CesiumJS is released under the Apache 2.0 license. It's published via GitHub, so you can download the source code or you can download NPM packages directly use it from there. Contributions are welcome and possible, although the project is mainly steered by one company. So this is a little bit different to normal OSDU projects because they are the core developers and there's quite good community support you will find on the website there. From technical point of view, CesiumJS is based on JavaScript, on WebGL and HTML5. And JavaScript and HTML5 you might have heard about. And WebGL is a standard. So I think the actual standard WebGL 2.0 was released around 2017. Released by a company called Chronos Group. They also released the other standards. I'm going to talk about them later a little bit more. And in general, WebGL allows a hardware accelerator 3D rendering via JavaScript. It's based on the proven graphics API OpenGL. And the good thing is it's supported by all browsers on the desktop and also on most mobile browsers. So let's talk a little bit about the browser requirements. As you can see, nearly every browser supports WebGL. And so they support WebGL. So they use Web standards. And then Cesium, because Cesium also is based on WebGL as I said before. So it could be used in all modern browsers. And also, CesiumJS supports screen operations like the panning, zooming with your fingers on the screen. And so you can use Cesium-based applications on mobile devices as well. Some words about the state of the development. I would say it's really a major library. We used it in several of our projects. And it's really working rock solid. It's well documented and all around an open source project. There's a community. I listed up some highlights. So there's a connection or a combination between Cesium and Unreal Engine, which is an engine that mainly is used for really displaying really detailed 3D worlds. It more comes from the gaming industry. But it's also an open source tool. It's really a well documented API that allows to change the state of the globe. So what I did before with my mouse, you also can do by scripting. There's a basic support for rendering in the underground, which is really feasible for us because most of the 3D projects we had in our company deal with the geological underground. So for instance, there's a feature that hinders Cesium from displaying the surface as a barrier so you can look through the surface into the underground when you look from above the ground. The back face culling is supported. That's really technical stuff. But I heard that it really helps to accelerate the load of the tiles and controls which tiles are loaded and which not needs to be loaded. And they migrated it from AMD to ES6 module in 2019, which really led to a far smaller package you have to load. JavaScript package you have to load in the browser. Another cool feature is CZML, which is kind of a Cesium language. It's a JSON based format. It's very similar to KML actually. And it allows to describe points and surfaces and models and other base elements. You can display them on the globe. And also you can describe a spatial, temporal, dynamic graphical scene. So for instance, you're a bike rider, a bicycler. And when you do your tour, you plot your points with your GPS device. And afterwards you have the coordinates with the GPS device and you have the time steps. And then you can display your tour live on the globe. And you can see yourself moving around your route. Cesium allows efficient streaming and it's really easy possible. Of course, it's JSON. And it's mainly made for display in the browser via Cesium.js. Another thing to mention here, there is a platform called Cesium Ion, which is a kind of cloud-based streaming service for Cesium.js. It delivers a terrain dataset. It allows to create your own assets. And very important, we're going to talk about that a little later. It allows you to convert data into 3D tiles. Which brings me to the part standards and 3D tiles in our talk. Of course, you're able to display any normal GIS data like WMS, WMTS. You can display GeoJSONs, shapefiles, KML, or CZML-based formats. The problem a little bit is with the 3D models. Because normally the formats in which you get the 3D models, they're more kind of exchange formats for further editing. They are not optimized for web display. And for that, the Kronos group that already created the WebGL 2.0 standard, they created a new standard which is called GLTF. It's a little like a kind of JPEG for 3D. That's what you could understand under that. The problem is with these GLTF files is that you put in all details into your tile. And if you would put that into your application, then on every zoom level, any detail should be loaded. And this is not what we really want to, because that really would slow down our application. And for that, there is a format called cesium 3D tiles. 3D tiles is an OJC community standard. So it's an open specification. And it's made for streaming comprehensive 3D data. So you're able to display 3D models like buildings, trees, point clouds. And 3D tiles have a hierarchical level of detail, which is really, really important. If you look at that picture, on the top left, you see a scene of a city somewhere. And of course, if you have this zoom level, it's not needed that you load any detail into your browser. That's the state. And if you look at the top right image, you can see that all the scenes in 3D tiles are separated into these red-layered blocks. And if you really zoom in, then cesium only loads the blocks that are really actually needed for display. And on the picture on the bottom, you see that many more details of the buildings are displayed than. So this is really an optimized thing to display 3D models in the web. You can see on that building here, which is a church somewhere in France, which consists of a point cloud with an additive refinement. You also can separate these into these red-labeled blocks. And the further you zoom in, the more points of the point cloud you will see. And that allows you really to fast display really detailed 3D objects via cesium.js. I'm going to talk a little bit more about data and examples at that stage. So first of all, I want to talk a little bit about the availability of data and talk a little bit about a pipeline. So most people who hear 3D data think about CDGML. That's the format where public administration holds their 3D building data and stuff like that. And the problem is you're not really able to display CDGML directly in cesium. So what you need is a kind of pipeline that converts the CDGML data to these 3D tiles I was talking about earlier. And unfortunately in the moment, there's just one pipeline based on the cesium ion server I was talking about a minute ago. So you can go there with your CDGML data, convert it there. The disadvantage is that you have to leave the data on the server and when you exceed a certain amount of storage, you have to pay for that. But we have another idea on that. I'm going to talk about that a little later. First of all, I want to give you some ideas about possible use of cesium.js. So there's an application where monitoring of radioactivity in a seawater is done by the ERAR. There's also another application for identification of vegetation overlaps around power poles. I think a really nice application is FlightRider24. Probably you've seen it. You see on the globe, you see live tracked air traffic flying around the globe, which is really impressive. There's also a 3D data portal in Switzerland, which displays the geological data in the web. And many more examples you can see on the user stories are linked here in the slides. And even more examples you can find at the sandboxes, where you really can find a lot of examples and code snippets and stuff like that. Finally, I want to talk a little bit about what did we do with cesium.js. And as mentioned earlier, we had a lot of projects where we were requested to display 3D underground data, geological data, surfaces, boreholes from drillings and stuff like that. We also used it to visualize some surrounding pictures and we used it also for a 3D display of WMS data. The problem we had in the recent project actually was also to convert our data into 3D details. And in that project, the user of the cesium client, base client, should be allowed to upload his own data. So they had X, Y, Z data from any project where they detected underground stuff or boreholes or whatever. We developed the possibility to upload the data. And from the upload, we put the data into a post-GS database where we converted it to the more feasible EPSG 4978. And then we used a library called Py3Dtiles, which converts the data into 3Dtiles. We exported the 3Dtiles. There we generated the tilesets, the blocks you've seen earlier, and also wrote some metadata and wire these 3Dtiles. We displayed the data, the user uploaded them in the cesium client. We developed this deploying chain. I know it was a lot of pain to develop that because I was actually not involved in that project, but I heard it was really hard to figure out how to do that. But it's working well and fine up now. Yeah, I want to show you some more examples here. This is just a switch from 2D through 3D view you've seen before. I think this is a regular globe and a map on it. Here is another application we have. These are European land cover changes. Of course, it's also possible to move around through time-based layers. So for instance, if you have satellite images and process them wire timescales, you can display that. You can see here the changes. This is a 3D model which works with the 3Dtiles. You see you can move in real fluidly in the browser here and display more and more details. Of course, it's also possible to label them a little bit more. We go from Germany where we are located here to zoom in a little bit. We have an example from Cologne. Probably you heard about the big church in Cologne. When you've ever been in Cologne, there's no chance not to see the so-called Könadum. We link the point here. This is a 3D scene which is linked behind that which could be then displayed and let you feel like being on the dome platform. This is just a screenshot from the CD underground model. It's not very impressive. I'm sorry. I didn't find a better example on that. Thank you very much. I hope you have some questions or some remarks. I hope you enjoyed my talk or our talk. Thank you very much.
 Well, as I said before, welcome everybody.  We're going to start with the session.  Today the first one is about 3D geoplications with C-SOM-GS, data possible uses, use cases  and specifications.  We have a Tiel Adams here who is going to explain and speak about it.  Tiel is founder of Terrestries.  He used to join the OZEO community right from the beginning.  Actually, he works as a consultant for his company.  And also, Michael Houdousen is a developer of Terrestries.  He works mainly in the field of 3D data visualization and run similar projects with C-SOM and as a  core library.  If you have any questions, you can just put it on the chat.  Tiel is here.  So after his presentation, he can answer any questions.  Located in Zurich.  We are doing software development for QJS.  It deals with 3D geoplications.  The core we're going to talk about is the JavaScript library C-SOM-GS.  We're going to talk about the data, some possible use cases and specifications.  First of all, I want to talk a little bit about us, the presenters, and also have one  slide about the company we're coming from.  Then I give you a general overview about the C-SOM-GS library.  I'm going to talk a little bit about standards and 3D tiles.  And in the last part of my talk, I'm going to talk a little bit about what people did  with C-SOM-GS and what we did with C-SOM-GS.  First of all, probably some of you might know me.  I had the honor to chair the Global Phosphor G conference 2016 in Bonn.  And in my job, I'm a shareholder of the company of Terrestris.  I founded the company 2002 with my colleague.  And I work mainly as a consultant and also agile coach.  Let me also present Michael Holthausen.  The talk I'm going to present today is mainly based on the script that Michael used.  He presented the C-SOM-GS library on the recently held Phosphor G-SOM conference, which is the  German-speaking OSTU local chapter.  I proposed him to talk about C-SOM-GS on Phosphor G as well.  And then we figured out that probably my English is a little better than his.  So I'm going to present the talk here.  But so that you could see at least his face.  Michael is a geographer.  He works, I think, nearly for two years now for Terrestris as an application developer.  He's mainly involved in our 3D project.  So he's a real expert.  Short slide about Terrestris.  As I said, I founded the company in 2002.  And we directly from right from the beginning on started to offer open source G-Sys.  So we understand ourselves as a service provider.  We come from Bonn in Germany.  In the moment we have 23 people in the company and two shareholders who, like me, we actually  work in the company.  Mainly we have developers.  And our developers are also involved in other OSTU projects or open source projects.  We work in layers and Geo-EXT.  You heard the talk about Geo-Styler from a colleague, which is an open source library  that headed origin at Terrestris formally.  And also other open source projects, like Degree, do some stuff in Geo-Server and so  on and so on.  Okay.  And of course, beside the normal 2D web mapping application, we have quite a few projects in  the 3D world.  And that's what I'm going to talk about now.  So first I give you a general overview.  What is CesiumJS?  First you can say it's a virtual globe.  Or better said, it's a 3D software model for the representation of the Earth or even other  planets.  You can free move in a virtual environment.  You can navigate to any point of interest.  You can change the view point from where you look at the globe.  You can of course zoom in and out at different scales.  So generally you can say Cesium offers a simplified model of the real world, like any  map more or less does.  But you have the possibility to display more precise details through zooming in.  So the level of detail can increase if you zoom in.  And we're going to see how to do that later in this talk.  Of course you're able to display process data in form of map layers on top of each other,  like you know.  So in general you can say CesiumJS is for the 3D world a little bit comparable to what  open layers is to the 2D world.  Though of course the projects are kind of different from each other.  I've loaded a CesiumJS application here just to give you an idea about what I'm talking  about.  So you can zoom in, zoom out, you can browse the globe with a mouse.  You can even switch to a 2D map.  Then you can switch back again to the 3D map.  And if you look here, that's I think more or less a place where we all would like or  love to be in the moment.  And even just to show you that you can switch layers.  So we are now in Buenos Aires and I changed the autofoto view to the open layers based  layer.  I got to show some more examples later on here, but this just to give you a short impression  about that.  CesiumJS is released under the Apache 2.0 license.  It's published via GitHub, so you can download the source code or you can download NPM packages  directly use it from there.  Contributions are welcome and possible, although the project is mainly steered by one company.  So this is a little bit different to normal OSDU projects because they are the core developers  and there's quite good community support you will find on the website there.  From technical point of view, CesiumJS is based on JavaScript, on WebGL and HTML5.  And JavaScript and HTML5 you might have heard about.  And WebGL is a standard.  So I think the actual standard WebGL 2.0 was released around 2017.  Released by a company called Chronos Group.  They also released the other standards.  I'm going to talk about them later a little bit more.  And in general, WebGL allows a hardware accelerator 3D rendering via JavaScript.  It's based on the proven graphics API OpenGL.  And the good thing is it's supported by all browsers on the desktop and also on most mobile  browsers.  So let's talk a little bit about the browser requirements.  As you can see, nearly every browser supports WebGL.  And so they support WebGL.  So they use Web standards.  And then Cesium, because Cesium also is based on WebGL as I said before.  So it could be used in all modern browsers.  And also, CesiumJS supports screen operations like the panning, zooming with your fingers  on the screen.  And so you can use Cesium-based applications on mobile devices as well.  Some words about the state of the development.  I would say it's really a major library.  We used it in several of our projects.  And it's really working rock solid.  It's well documented and all around an open source project.  There's a community.  I listed up some highlights.  So there's a connection or a combination between Cesium and Unreal Engine, which is an engine  that mainly is used for really displaying really detailed 3D worlds.  It more comes from the gaming industry.  But it's also an open source tool.  It's really a well documented API that allows to change the state of the globe.  So what I did before with my mouse, you also can do by scripting.  There's a basic support for rendering in the underground, which is really feasible for  us because most of the 3D projects we had in our company deal with the geological underground.  So for instance, there's a feature that hinders Cesium from displaying the surface as a barrier  so you can look through the surface into the underground when you look from above the ground.  The back face culling is supported.  That's really technical stuff.  But I heard that it really helps to accelerate the load of the tiles and controls which tiles  are loaded and which not needs to be loaded.  And they migrated it from AMD to ES6 module in 2019, which really led to a far smaller  package you have to load.  JavaScript package you have to load in the browser.  Another cool feature is CZML, which is kind of a Cesium language.  It's a JSON based format.  It's very similar to KML actually.  And it allows to describe points and surfaces and models and other base elements.  You can display them on the globe.  And also you can describe a spatial, temporal, dynamic graphical scene.  So for instance, you're a bike rider, a bicycler.  And when you do your tour, you plot your points with your GPS device.  And afterwards you have the coordinates with the GPS device and you have the time steps.  And then you can display your tour live on the globe.  And you can see yourself moving around your route.  Cesium allows efficient streaming and it's really easy possible.  Of course, it's JSON.  And it's mainly made for display in the browser via Cesium.js.  Another thing to mention here, there is a platform called Cesium Ion, which is a kind  of cloud-based streaming service for Cesium.js.  It delivers a terrain dataset.  It allows to create your own assets.  And very important, we're going to talk about that a little later.  It allows you to convert data into 3D tiles.  Which brings me to the part standards and 3D tiles in our talk.  Of course, you're able to display any normal GIS data like WMS, WMTS.  You can display GeoJSONs, shapefiles, KML, or CZML-based formats.  The problem a little bit is with the 3D models.  Because normally the formats in which you get the 3D models, they're more kind of exchange  formats for further editing.  They are not optimized for web display.  And for that, the Kronos group that already created the WebGL 2.0 standard, they created  a new standard which is called GLTF.  It's a little like a kind of JPEG for 3D.  That's what you could understand under that.  The problem is with these GLTF files is that you put in all details into your tile.  And if you would put that into your application, then on every zoom level, any detail should  be loaded.  And this is not what we really want to, because that really would slow down our application.  And for that, there is a format called cesium 3D tiles.  3D tiles is an OJC community standard.  So it's an open specification.  And it's made for streaming comprehensive 3D data.  So you're able to display 3D models like buildings, trees, point clouds.  And 3D tiles have a hierarchical level of detail, which is really, really important.  If you look at that picture, on the top left, you see a scene of a city somewhere.  And of course, if you have this zoom level, it's not needed that you load any detail into  your browser.  That's the state.  And if you look at the top right image, you can see that all the scenes in 3D tiles are  separated into these red-layered blocks.  And if you really zoom in, then cesium only loads the blocks that are really actually  needed for display.  And on the picture on the bottom, you see that many more details of the buildings are  displayed than.  So this is really an optimized thing to display 3D models in the web.  You can see on that building here, which is a church somewhere in France, which consists  of a point cloud with an additive refinement.  You also can separate these into these red-labeled blocks.  And the further you zoom in, the more points of the point cloud you will see.  And that allows you really to fast display really detailed 3D objects via cesium.js.  I'm going to talk a little bit more about data and examples at that stage.  So first of all, I want to talk a little bit about the availability of data and talk a  little bit about a pipeline.  So most people who hear 3D data think about CDGML.  That's the format where public administration holds their 3D building data and stuff like  that.  And the problem is you're not really able to display CDGML directly in cesium.  So what you need is a kind of pipeline that converts the CDGML data to these 3D tiles I  was talking about earlier.  And unfortunately in the moment, there's just one pipeline based on the cesium ion server  I was talking about a minute ago.  So you can go there with your CDGML data, convert it there.  The disadvantage is that you have to leave the data on the server and when you exceed  a certain amount of storage, you have to pay for that.  But we have another idea on that.  I'm going to talk about that a little later.  First of all, I want to give you some ideas about possible use of cesium.js.  So there's an application where monitoring of radioactivity in a seawater is done by  the ERAR.  There's also another application for identification of vegetation overlaps around power poles.  I think a really nice application is FlightRider24.  Probably you've seen it.  You see on the globe, you see live tracked air traffic flying around the globe, which  is really impressive.  There's also a 3D data portal in Switzerland, which displays the geological data in the  web.  And many more examples you can see on the user stories are linked here in the slides.  And even more examples you can find at the sandboxes, where you really can find a lot  of examples and code snippets and stuff like that.  Finally, I want to talk a little bit about what did we do with cesium.js.  And as mentioned earlier, we had a lot of projects where we were requested to display  3D underground data, geological data, surfaces, boreholes from drillings and stuff like that.  We also used it to visualize some surrounding pictures and we used it also for a 3D display  of WMS data.  The problem we had in the recent project actually was also to convert our data into 3D details.  And in that project, the user of the cesium client, base client, should be allowed to  upload his own data.  So they had X, Y, Z data from any project where they detected underground stuff or boreholes  or whatever.  We developed the possibility to upload the data.  And from the upload, we put the data into a post-GS database where we converted it to  the more feasible EPSG 4978.  And then we used a library called Py3Dtiles, which converts the data into 3Dtiles.  We exported the 3Dtiles.  There we generated the tilesets, the blocks you've seen earlier, and also wrote some metadata  and wire these 3Dtiles.  We displayed the data, the user uploaded them in the cesium client.  We developed this deploying chain.  I know it was a lot of pain to develop that because I was actually not involved in that  project, but I heard it was really hard to figure out how to do that.  But it's working well and fine up now.  Yeah, I want to show you some more examples here.  This is just a switch from 2D through 3D view you've seen before.  I think this is a regular globe and a map on it.  Here is another application we have.  These are European land cover changes.  Of course, it's also possible to move around through time-based layers.  So for instance, if you have satellite images and process them wire timescales, you can  display that.  You can see here the changes.  This is a 3D model which works with the 3Dtiles.  You see you can move in real fluidly in the browser here and display more and more details.  Of course, it's also possible to label them a little bit more.  We go from Germany where we are located here to zoom in a little bit.  We have an example from Cologne.  Probably you heard about the big church in Cologne.  When you've ever been in Cologne, there's no chance not to see the so-called Könadum.  We link the point here.  This is a 3D scene which is linked behind that which could be then displayed and let  you feel like being on the dome platform.  This is just a screenshot from the CD underground model.  It's not very impressive.  I'm sorry.  I didn't find a better example on that.  Thank you very much.  I hope you have some questions or some remarks.  I hope you enjoyed my talk or our talk.  Thank you very much.
FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_0_1763.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_1764_2639.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_2640_2999.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_3000_4427.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_4428_5303.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_5304_8723.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_8724_11459.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_11460_11615.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_11616_11831.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_11832_12131.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_12132_12371.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_12372_12575.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_12576_16115.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_16116_16175.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_16176_19067.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_19068_21731.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_21732_26063.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_26064_26111.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_26112_28595.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_28596_31667.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_31668_34247.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_34248_35363.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_35364_35471.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_35472_35591.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_35592_35639.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_35640_35783.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_35784_35939.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_35940_36239.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_36240_36299.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_36300_36623.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_36624_36707.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_36708_36767.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_36768_37427.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_37428_37511.png FOSS4G_-_3D_geo-applications_with_CesiumJS_-_data__V7W2_vKYamM_37512_37629.png