Introduction
The 52°North Triturus library is extremely powerful and provides a lot of functionalities in the field of 3D geovisualization. This library is used in a lot of projects such as 52°North terrainServer and 52°North WorldViz. Currently, the terrainServer offers web-based services providing perspective terrain views. The project’s goal is to extend terrain model generation and analysis to practical scenarios in which it would be desirable to have web-based access to tools (e.g., difference surfaces, mass calculations, inclination analysis) and to model generation functions. These should use 52°North Triturus library. In the Google Summer of Code 2016 program, we shall try to achieve web-based access for some of these tools. This new module has been named ‘terrainTools’ and will be a standalone project.
Implementation
Google API
One of the most important features of our project is the deep integration with Google’s API. We currently use three different API’s in the context of our project – Google Drive API, Google Plus API and Google Picker API.
Google Plus API
Remembering different application passwords is always a pain. So from the start, we wanted a seamless and a simple way to login. The Google Plus API exactly does that. Furthermore, it also helps share files more easily amongst peers.
Google Drive API
Files created using the 52°North terrainTools application can be directly accessed via Google Drive accounts. All users of our application will find a folder titled ‘52n-terraintools’ in their Google Drive. The Project Directories, Elevation Grids, Point Sets, and Flooding Descriptions are inside that folder.
Google Picker API
Files created earlier can also be accessed right from the application itself! To make this possible, we wanted to create a User Interface that would have the functionality of Google Drive. Therefore, we integrated the Google Picker API to have the same User Experience.
Server Management
Our cloud-based application should be accessed worldwide instead of running on localhost, even during our development phase. Heroku is an excellent solution for making this possible. We have hosted our application at https://terraintools.herokuapp.com. Please note that only https works currently.
Visualization
X3DOM is an open source framework and runtime for 3D graphics on the Web. As a result of our experience from the WorldViz project, we knew that X3DOM was the way to go.
Once a user has signed in and uploaded a pointset, the visualizations can be accessed by going to https://terraintools.herokuapp.com/visualize. Here are some of visualisations that we have created using the Triturus framework.
A pointset represented by its XYZ coordinates has been processed through Gridding Algorithms and visualized as above.
Here is a visualization for flooding:
Using the first visualization, we picked a point on the visualization and then modeled flooded areas by specifying an absolute or a relative Z value.
What’s yet to come?
- Ability to add other object types like crosssections (.prf) or TINs (.tin).
- Crosssection generation or difference model calculations
- Support Triangulated Irregular Networks
- Instead of the HTTP Get/Post interface, a REST interface could be specified and implemented.
Conclusion
We are doing a lot of interesting things with this project – more to follow! We hope that you have liked our progress till now.
You can follow us at: https://trello.com/b/MuqBTuXw/terraintools
Leave a Reply