XdkWrl: GeoMetadata Class Reference

Home | Hierarchy | Members | Alphabetical | Related Pages

# GeoMetadata Class Reference
[Standard Node Types]

`#include <geometadata.h>`

Inherits Node.

List of all members.

## Public Member Functions
| GeoMetadata (const char *name="")
virtual | ~GeoMetadata ()
virtual unsigned int | nbFields () const
virtual FieldHandle | field (const std::string &n)
virtual FieldHandle | field (unsigned int i)
virtual bool | isSetToDefaultValue (unsigned int i) const
virtual unsigned int | nbEventsIn () const
virtual EventInHandle | eventIn (const std::string &n)
virtual EventInHandle | eventIn (unsigned int i)
virtual unsigned int | nbEventsOut () const
virtual EventOutHandle | eventOut (const std::string &n)
virtual EventOutHandle | eventOut (unsigned int i)
const char * | typeName () const
virtual Node * | duplicate () const
virtual Node * | duplicate (std::map< const Node *, Node * > &) const
## Public Attributes
Exposed Fields
A field that is capable of receiving events via an eventIn to change its value(s), and generating events via an eventOut when its value(s) change.
MFNode | data
MFString | summary
MFString | url
Events In
EventIn< MFNode > | set_data
EventIn< MFString > | set_summary
EventIn< MFString > | set_url
Events Out
EventOut< MFNode > | data_changed
EventOut< MFString > | summary_changed
EventOut< MFString > | url_changed

## Detailed Description

Here is the documentation for this node type, from the ISO standard.

## 6.27 GeoMetadata

The GeoMetadata node aims to specify metadata describing any number of GeoVRML nodes. This can be thought of as similar to a WorldInfo node, but specifically for describing geospatial information.

There are a number of organizations that are already working on standards and representations for geospatial metadata, such as the FGDC, ISO TC211, CEN TC287, OpenGIS Consortium, and others. Rather than adopt any particular standard, the purpose of the GeoMetadata node is to provide links to any of these complete metadata descriptions, with the option to also supply a short, human-readable summary. It is not the purpose of the GeoMetadata node to introduce a new metadata standard.

The url field is used to specify a hypertext link to an external, complete metadata description. Multiple URL strings can be specified in order to provide alternative locations for the same metadata file. An optional hint can be provided in the summary field to specify the format of the metadata in the case where this cannot be deduced easily.

The summary string array contains a set of keyword/value pairs, with each keyword and its subsequent value contained in a separate string, i.e. there should always be an even (or zero) number of strings. This provides a simple, extensible mechanism to include metadata elements that are human-readable and easy to parse. The following list specifies a number of keywords and the format that should be used to describe their values. To support future additions to this list, if an unknown keyword is found, it (and its associated value) should be ignored.

#### Table 6.x -- GeoMetadata recommended keywords

Keyword | Value
title | A name to succinctly identify the dataset to user. For example, "San Francisco, CA".
description | A brief textual description or summary of the content of the dataset. For example, "LANDSAT 7 satellite imagery taken over northern Scotland".
coordinateSystem | The spatial reference frame used to represent the data, e.g. GD, UTM, LCC, etc. The list of valid codes that can be used in this field are defined in Section 4.1 of E.[RI00]. In the case of UTM, the zone number should also be specified in the format "UTM Zx", where 1 <= x <= 60. For example, "UTM Z11".
horizontalDatum | The name of the geodetic datum. The list of valid codes that can be used in this field are defined in Section 4.3 of E.[RI00]. For example, "W84".
verticalDatum | The name of the vertical datum (geoid). The list of valid codes that can be used in this field are defined in Section 4.3 of E.[RI00]. For example, "W84".
ellipsoid | The name of the geodetic ellipsoid. The list of valid codes that can be used in this field are defined in Section 4.2 of E.[RI00]. For example, "WE".
extent | The bounding coordinates for the dataset given in spatial reference frame specified by the coordinateSystem keyword. These are provided in the order eastmost, southmost, westmost, northmost, followed by the minimum and maxiumum elevation for the dataset. An example for GD is: "-180.0 -90.0 180.0 90.0 0.0 2000.0".
resolution | The resolution, or ground sample distance, given in units of metres. For example, "30".
originator | A string defining the originator of the data, for example the author, agency, organization, publisher, etc. For example, "Martin Reddy, SRI International, Menlo Park, CA 94025"
copyright | Any appropriate copyright declaration that pertains to the data. For example, "(c) Copyright 2000, SRI International. All rights reserved. Freely distributable."
date | A single date/time, or a date/time range, defining the valid time period that the data pertains to. Dates are specified in the format "YYYY MM DD [HH:MM]". Years in the current time period should be specified using four digits, e.g. "1999" or "2001". Years can have other than 4 digits and can be negative. A date range is specified by supplying two values separated by a "-" character. An optional time can be supplied should this level of accuracy be required. Times are to be specified in 24-hour format with respect to GMT. For example, "1999 01 01 00:00 - 1999 12 31 23:59".
metadataFormat | A string that specifies the format of the external metadata description pointed to by url field of the GeoMetadata node. For example, "FGDC", "ISO TC211", "CEN TC287", "OGC", etc.
dataUrl | A hypertext link to the source data used to create the VRML node(s) these metadata pertain to. Multiple dataUrl keyword/value pairs can be specified in order to provide alternative locations for the same source file. For example, "http://www.foo.bar/data/sf1".
dataFormat | A free-text string that describes the format of the source data used to create the VRML node(s) that these metadata pertain to. This refers to the source data pointed to by the dataUrl keyword (if present). For example, "USGS 7.5-min DEM".

The data field is used to list all of the nodes that implement the data described in the GeoMetadata node. For example, if the GeoMetadata node is describing a height field grid, the appropriate GeoElevationGrid node could be included inside the data field. The nodes in the data field are not rendered, so DEF/USE may be employed to first describe them and then to use them in the scene graph This approach associates multiple data nodes with a single GeoMetadata node, specifies multiple GeoMetadata nodes within a single scene, and provides a mechanism to easily locate all of the data that pertain to any particular metadata entry. If the data field is not specified, it is assumed that the GeoMetadata node pertains to the entire scene.

## Constructor & Destructor Documentation

GeoMetadata | ( | const char * | name = `""` | ) |

Construct a node with all its fields set to default value, which is equivalent to the code below:

~GeoMetadata | ( |  | ) | `[virtual]`

Virtual destructor, does nothing

## Member Function Documentation

unsigned int nbFields | ( |  | ) | const`[inline, virtual]`

Returns the number of fields (exposed or not) for this node type.

Implements Node.

wrl::Node::FieldHandle field | ( | const std::string & | n | ) | `[virtual]`

Return a handle on the field named `n` of the node or a "unknown" typed handle if there is no such field. Valid names are:

- data
- summary
- url

Implements Node.

wrl::Node::FieldHandle field | ( | unsigned int | n | ) | `[virtual]`

Return a handle on the `i` th field of the node or a "unknown" typed handle if there is no such node. Here is how `i` is related to fields:

- 0 : data
- 1 : summary
- 2 : url This function is useful, with nbFields() if you want to traverse all fields of a Node.

Implements Node.

bool isSetToDefaultValue | ( | unsigned int | i | ) | const`[virtual]`

Implements Node.

unsigned int nbEventsIn | ( |  | ) | const`[inline, virtual]`

Returns the number of events in for this node type.

Implements Node.

wrl::Node::EventInHandle eventIn | ( | const std::string & | n | ) | `[virtual]`

Return a handle on the event in named `n` of the node or a "unknown" typed handle if there is no such event. Valid names are:

- set_data
- set_summary
- set_url

Implements Node.

wrl::Node::EventInHandle eventIn | ( | unsigned int | n | ) | `[virtual]`

Return a handle on the `i` th event in of the node or a "unknown" typed handle if there is no such node. emarks This class has no eventIn. This function is useful, with nbEventsIn() if you want to traverse all events in of a Node.

Implements Node.

unsigned int nbEventsOut | ( |  | ) | const`[inline, virtual]`

Returns the number of events out for this node type.

Implements Node.

wrl::Node::EventOutHandle eventOut | ( | const std::string & | n | ) | `[virtual]`

Return a handle on the event out named `n` of the node or a "unknown" typed handle if there is no such event. Valid names are:

- data_changed
- summary_changed
- url_changed

Implements Node.

wrl::Node::EventOutHandle eventOut | ( | unsigned int | n | ) | `[virtual]`

Return a handle on the `i` th event out of the node or a "unknown" typed handle if there is no such node. Here is how `i` is related to fields:

- 0 : data_changed
- 1 : summary_changed
- 2 : url_changed This function is useful, with nbEventsOut() if you want to traverse all events in of a Node.

Implements Node.

const char * typeName | ( |  | ) | const`[inline, virtual]`

Returns `"GeoMetadata"`. Useful for printing.

Implements Node.

wrl::Node * duplicate | ( |  | ) | const`[virtual]`

Returns a deep copy of this node, that is a fully independant node with all children (if any) also copied. This is mainly useful for instanciating protos.

Implements Node.

virtual Node* duplicate | ( | std::map< const Node *, Node * > & |  | ) | const`[virtual]`

Implements Node.

## Member Data Documentation

MFNode data

See Detailed Description for meaning of this field. Default value is set to MFNode default value

MFString summary

See Detailed Description for meaning of this field. Default value is set to MFString default value

MFString url

See Detailed Description for meaning of this field. Default value is set to MFString default value

EventIn<MFNode> set_data

Set event associated to exposedField data

EventIn<MFString> set_summary

Set event associated to exposedField summary

EventIn<MFString> set_url

Set event associated to exposedField url

EventOut<MFNode> data_changed

Changed event associated to exposedField data

EventOut<MFString> summary_changed

Changed event associated to exposedField summary

EventOut<MFString> url_changed

Changed event associated to exposedField url

Generated on 5 Jan 2007 with version 1.5.1. |