More GeoVRML
 Join The Discussion
"market trends..."
MY39CLOCKS
 
 Related Resources
• Tutorials
• Scientific Applications
 
 From Other Guides
• JavaScript
• HTML/XML
• Animation
 

Dateline: January 17, 2001
GeoVRML trip example

As you no doubt recall GeoVRML is a recommended practice that extends the VRML97 standard. In addition to the specification you can easily view GeoVRML files (VRML files that use the GeoVRML extension nodes) by using the Cortona V3 browser which now provides native support for these nodes and is the simplest, but not only way of working with GeoVRML. In addition to Cortona those GeoPeople at SRI, the creators of GeoVRML have created a GeoVRML runtime utility that you can load up to give the other VRML browsers the ability to view GeoVRML files.

One particularly interesting GeoVRML example created by Martin Reddy along with lots of other examples is located on the GeoVRML.org site. Martin's "World Trips" contains a globe of the Earth with lots of red pointers which represent places Martin has visited. Moving the cursor over a pointer displays the name of the location and opens up a page (usually) to a photo of a trip to that location. It's totally cool!

Let's examine one of the locations in detail, San Francisco. The GeoLocation node is used to "georeference" any VRML object. The object in this case is the little red pointer. The field geoSystem uses the "GDC" which is the latitude/longitude system. The "WE" is the specification for which standard ellipsoid describing the earth to use. (Note that the earth is not a perfect sphere and many ellipsoids exist with variations of the major and minor axes. See the Definitions section of the GeoVRML spec for more detailed info.) Notice that the coordinates 37 and -122 corresponds quite nicely with the lat long coordinates for San Francisco that you will find on any map. This stuff is real! The +50100 is the elevation. The geometry that is georeference is contained in the data in the children field of the geoLocation node. In this case an Anchor and all the geometry associated with it is located there. This is very straightforward, no fuss no muss.

GeoLocation {
      geoSystem [ "GDC", "WE" ]
      geoCoords "37.78572 -122.42142 +50100"
      children [
        Anchor {
          description "San Francisco, CA"
          parameter "target=_martinstrips"
          url "http://www.ai.sri.com/cgi-bin/show_img.pl?img=jpg/sfbay.jpg"
          children [
            Transform {
              rotation 1 0 0 3.14159
              children [
                Shape {
                  appearance Appearance {
                    material Material {
                      diffuseColor 1 0 0
                    }
                  }
                  geometry Cone {
                    bottomRadius 50000
                    height 100000
                  }
                }
              ]
            }
          ]
        }
      ]
    }

In addition to the geoLocation the trip example file also contains viewpoints created using the geoViewpoint Node. For the San Francisco example above the geoViewpoint is defined as:

GeoViewpoint {
      geoSystem [ "GDC", "WE" ]
      position "37.78572 -122.42142 +5000100"
      orientation 1 0 0 -1.57
      description "Model 29"
    }

Note that the position is exactly the same but with a higher elevation. Nice and neat. That's it for our quickie look at GeoVRML, if you've got any data that you need geolocated this is definitly the way to go.

ZZZNEWSLETTERSIGNUP1ZZZ
[Tutorials] [Web3D Technology Comparison] [Virtual Humans]
[Virtual Reality] [Art] [People of Web3D]
[Panoramic Imaging] [FAQs] [Companies]