LandXML Reader/Writer

Licensing options for this format begin with FME Desktop Professional Edition.

The LandXML Reader/Writer allows FME to read and write LandXML (Extensible Markup Language) documents.

LandXML is an XML-based survey exchange format. This document assumes that the reader has a good understanding of the LandXML format.

More information is available at

Element Types

This provides support for a restricted subset of LandXML version 1.1. Further support is planned for the future.

Each of the above elements in a LandXML document will result in one or more features being produced. Similarly, any feature written via the LandXML writer will result in that feature being interpreted as one of the above types of elements. Most of the above elements can occur more than once in a document, while others allow only a single element of that type. In the case that multiple features are written to an element type that only supports a single element per document, the first feature read will provide the data for that element, and subsequent features will dropped with a warning that the feature is not being written.

Reader Overview

The LandXML reader module produces an FME feature for each supported element type in the file.

Automatic coordinate system support is limited to CoordinateSystem elements which contain OGCWKT coordinate system definitions or recognized EPSG codes. In the case where neither is true, the coordinate system attributes will be available within FME/Workbench for further examination, but geometry found in the LandXML file will not have a coordinate system set. It is of course possible to set the coordinate system based on the values found in the CoordinateSystem feature manually.

CoordGeom Elements

The geometry of an Alignment, Parcel, or PlanFeature makes use of a CoordGeom element to store a part of its geometry. A CoordGeom element consists of any number of linear elements or curve/spiral elements.

The LandXML Reader currently has limited support for Curve and Spiral elements.

  • Curve elements which are arc or chord types defined by three points (start, center, end) will be read.
  • No Spiral elements are read.

If a Curve or spiral type is not read, it will result in an interpolation between segments of a CoordGeom element. A warning will be issued if a spiral element or an unsupported Curve element is encountered. Support for these elements will be added in future versions of the reader.

It is recommended that if the data contains a spiral or curve element as part of a CoordGeom element that the geometry of the output be considered faulty (since when a spiral or curve is skipped, the intervening space will be linearly interpolated from the surrounding segments). But if linear interpolation produced correct geometry, then there would have been no need for a curve or spiral component.

Writer Overview

The LandXML writer module produces a LandXML xml document from all the features which are passed to it.

The Coordinate system will be established by a feature identified as the CoordinateSystem element, and all other geometric elements will be assumed to be in this format.

Identifying Writer Feature Types

The reader marks all features with an attribute landxml_landxml_type. This provides a way of tracking the origin of a feature from a particular document. The range of values for this attribute are those LandXML element types which are used as the head of a feature. The writer then uses this attribute to determine where in the LandXML destination document the information for this feature should go.

For example, if an FME feature is given to the writer, and it has an attribute landxml_landxml_type, with a value for this attribute of Parcel, then that feature will be interpreted as a Parcel element.

If there is no such attribute, or the attribute has a value that is not recognized, then the writer takes the feature-type as the intended destination. That is, if there is no attribute landxml_landxml_type, or that attribute doesn’t have a legal value, but the FME feature has a feature-type of Survey, then the feature will be interpreted as a Survey element.

Finally, if neither the landxml_landxml_type attribute, nor the feature-type of a feature can determine how to interpret the feature, the writer will either fail, or attempt to determine the type based on the geometry of the feature in question.