Geometry Representations

In general, the geometry will be identified by thexml_typeattribute as defined in the documentation for theXML (Extensible Markup Language) Reader/Writer.

Geometry TraitsandLandXML Featuresare specific to the LandXML format.

Geometry Traits

In a number of LandXML feature types (Alignment, PlanFeature, Parcel, Surface elements), the geometry of a feature can be quite complicated and make use of a number of different elements, each with its own purpose.

Since FME currently restricts a feature to having only one geometric element, the LandXML reader constructs an aggregate out of the different geometry properties that a given feature has. Then, in order to make it easier to examine a given geometry property, we have assigned to each geometry a geometry trait (essentially an attribute on a geometry) which identifies it.

Trait Name

Contents

landxml_geometry_type

A string identifying the geometry in question.

A mapping file example taken from an Alignment element shows thelandxml_geometry_typetrait in question.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Geometry Type: IFMEAggregate Number of Geometry Traits: 1 GeometryTrait(string): landxml_geometry_type' has value alignment_geometry' Number of Geometries: -------------------------------------- Geometry Number: 0 Geometry Type: IFMEPoint Number of Geometry Traits: 1 GeometryTrait(string): landxml_geometry_type' has value start' Coordinate Dimension: 2 (1283.49421251,1309.71022416) -------------------------------------- Geometry Number: 1 Geometry Type: IFMEPath Number of Geometry Traits: 1 GeometryTrait(string): landxml_geometry_type' has value alignment_boundary' Number of Segments: 13 [rest of geometry omitted] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

几何特征也用于生产特性by the LandXML reader in order to tie properties of a geometry tightly to that geometry. For example, it is possible to have a set of BreakLine elements on a Surface SourceData element. Each BreakLine element can have a set of properties (called ‘Feature’ elements in LandXML). By coupling the name-value pairs directly on the geometry, it is easy to determine which feature-property refers to which BreakLine.

LandXML编写者目前不支持写入曲线或螺旋类型。在写作之前,这些几何形状将被划衡。

LandXML Features

In addition to a large set of predefined attributes, LandXML has a mechanism for user-defined attributes calledFeatures(not to be confused with FME features).

While LandXML Features include a set of related attributes (a name, a DocFileReference, etc.), they can also include simply name-value pairs. In order to capture the related attributes as a group, list attributes are used. In particular, the structure of a LandXML Feature encompasses the following attributes:

  • Feature{}.Code
  • Feature{}.Source
  • Feature{}.Property{}.Label
  • Feature{}.Property{}.Value
  • Feature{}.DocFileRef{}.Name
  • Feature{}.DocFileRef{}.Location
  • Feature{}.DocFileRef{}.Filetype
  • Feature{}.DocFileRef{}.FileFormat

When writing a LandXML feature type which supports ‘Feature’ elements, all attributes which match this structure will be used to construct LandXML Feature elements with all the appropriate relationships as defined by the indices on these list attributes. In addition to this, any attributes which neither match the above schema, or are built-in LandXML attributes, will be assigned to a feature property label and value. That is, given an attribute called "UserIntervention" with a value "No", the writer will construct a Feature, with a Property, with the Label = "UserIntervention" and the Value = "No". All attributes will be interpreted as string values.

Due to LandXML’s structure, these Feature attributes may be stored on either a Feature, or as traits on a geometry.