Public Member Functions |
| virtual | ~DtNavigationFeatureStringParser () |
| | virtual DTOR
|
| virtual void | parse (const std::string &stringToParse) |
| | Break the string supplied with a streamed object into its component tokens and build the ParsedAttributeValueMap.
|
| virtual std::string | attributeValue (const std::string &attrName) const |
| | Get the attribute value for the specified attribute name for the most recently parsed string.
|
virtual const
ParsedAttributeValueMap & | results () const |
| | Get the map of all attributes and associated values for the most recently parsed string.
|
| virtual bool | readFeatureMappingFile (const std::string &path, const std::string &objectMappingsFileName)=0 |
| | Read the file that specifies the values to use for each S57 attribute.
|
| virtual void | insertAttributeValue (const std::pair< std::string, std::string > &newPair) |
| | Insert a new pair into the parsed results.
|
| virtual void | clearParseResultStrings () |
| | Clear the results map in preparation for a new parse.
|
The DtNavigationFeatureStringParser parses the object attributes found in the strings used by streamed object marker names.
The string is a ':' separated list; The fields provide the attribute/value pairs in the form ATTRIBUTE=VALUE. Value comes directly from an S-57 data (or a shape file extracted from S-57). These values may themselves be comma-separated lists of values.
Example: The following could be a the marker name in the .earth file: "COLOUR=" + [COLOUR] + ":TOPSHP=" + [TOPSHP] + ":CATSPM=" + [CATSPM] When the marker is streamed in, osgEarth replaces [COLOUR] with the attribute values in the S-57 or shape file, say 3, 1, and 8 respectively. Then the resulting marker string is "COLOUR=3:TOPSHP=1:CATSPM=8". These are broken down into attribute/value pairs that can then be accessed by the DtNavigationFeatureBuilder. Some attributes with multiple numbers may be concatenated (or only choose the first item)