Luigi Castro Cardeles
Luiz Carlos Teixeira Coelho Filho
Paulo Roberto Ferreira
Various companies offer diffent kinds of 3D mapping solutions. In the world of FOSS (Free and Open Source Software) for mapping, there are some desktop GIS with 2D features and a few systems with some kind of visualization in 3D (such as GRASS and OSSIM). In order to store a geographic data, a good FOSS DBMS would be PostgreSQL with PostGIS.
Open3DGIS' (O3DG) basic idea is to provide a simple way to integrate a 2D GIS with 3D visualization and interactivity on the web, using only FOSS components and open standards. O3DGs development team defined some initial ideas:
- Integration with a 2D desktop GIS that can store and mantain geographic data in DBMS (the most important feature). The goal is to have a database model with few attributes. so that it will be able to work with FOSS 2D GIS (QGIS, gvSIG, OpenJUMP, etc.) reading the same data source from PostgreSQL. These few attributes must enable the generation of a 3D model from 2D geometry;
- X3D standards are used for visualization on web browsers. There are many free plug-ins for most platforms (Windows, Linux, etc) that enable 3D visualization of a X3D file format.
O3DG works with a simple concept: to view, interact and update a 3D geographic information from a DBMS using a web browser. At this moment, there is no intent of developing spatial 3D analysis, but in the future, there may be some. The concept of a WebGIS (acronym for Web-based Geographical Information System) is nowadays very widespread [Mitchell, 2005]. Solutions such as Google Maps have become very popular in the last few years, thanks to the availability of free geographic data on the World Wide Web.
Free and Open Source Software related to geomatics and geosciences are still somehow scarce, but there has been a huge increase in the number of projects available nowadays. In 2006, The Open Source GeoSpatial Foundation (OSGEO) was founded with the following mission:
“…to support and build the highest-quality open source geospatial software. The foundation's goal is to encourage the use and collaborative development of community-led projects. ”
(https://www.osgeo.org) One of the mature open source projects is MapServer. Simply put, this is a renderer that displays spatial data organized in a database, or in different files (the most common files would be: shapefiles for vectors, and tiff for images). MapServer, as described in its manual, is not a full Geographical Information System. It intends to excel at rendering spatial data for the web, as described in CGI MapServer Reference Manual.
MapServer has been used throughout the years in many projects where it was needed to display 2D Geographical Data over the Internet. It is, nowadays, a cheap and stable solution for doing so, being comparable to many of the modern commercial web applications currently available.
MapServer relies on OpenGIS specifications. These specifications represent a consensus on how spatial data should be stored, queried and retrieved.
However, neither MapServer, nor the latest OpenGIS specifications define precisely how to deal with tri-dimensional data. Albeit almost all spatial phenomena can be satisfactorily modelled using 2D data, in some applications, the knowledge of 3D position is crucial for dealing with them. As an example, many subterranean tubes can be found under the sewer system of any urban scenario. If a subway needs to be constructed under this area, it is necessary to know the spatial tri-dimensional distance between those tubes, otherwise there would probably be undesirable accidents. In this case, a 2D GIS would not fit. So, there is a need for 3D data to be correctly displayed and analyzed in a Web GIS. As MapServer is already Open Source, a natural solution would be giving it 3D web features, developed as a plug-in, and also distributed as FOSS. This idea (of developing it freely) was also in agreement with the philosophy of the institutions that are currently sponsoring this project.
The Idea behind Open 3D GIS
Open 3D GIS intends to enable a geographic database (geodatabase) to be viewed in a 3D visualization on the web, using a web browser (such as Mozilla, Mozilla Firefox, Opera or Internet Explorer). Basically, version 0.1 consists of a series of scripts, written in Python, which extract spatial data obtained from several sources and loaded into a database (in this case, PostgreSQL with the module PostGIS). The user can choose between two options: export 3D features directly to this through the cgi_o3dg.py script loading them from an already opened MapServer rendering window using HTML query methods, or loading tridimentional meshes directly from PostgreSQL. This script calls Open 3D GIS and then converts all objects represented in 3D to a surface, through Delaunay triangulations.
Fig. 1 This diagram shows how Open 3D GIS works