Geometry Model
From Fmepedia
FME has an internal geometry model that describes how features are stored within FME and its FFS format.
| Table of contents |
Rich Geometry
In FME2006 and FME2006GB the geometry model underwent widespread improvements to support complex geometry types - such as polygons whose boundaries include arc features - and to enable proper storage and handling of measures. This is what became known as "Rich Geometry", the previous model being referred to as "Classic Geometry".
As time progressed user-level functionality, such as data formats and transformers, were upgraded to take advantage of these geometry model improvements.
These upgrades can be turned on and off en-masse using the Geometry Handling Parameter.
New Geometry Features
Some of the new geometry types available in recent FME versions are:
- IFMEPath
- A series of linear features welded together into a single path; for example line-arc-line
- IFMEMultiText
- IFMEMultiPoint
- IFMEMultiArea
- IFMEMultiCurve
- Any geometry that is made up of multiple features; for example IFMEMultiPoint is a single feature made up of multiple point features. Note that this is not the same thing as "multiple geometries".
Q+A
Q) Can I convert my data between rich and classic geometry or vice versa?
A) We don't really recommend that you do this, or that you should need to. Whether your geometry is rich or classic is not something you need to think about.
Really the better place to worry about this is in the Geometry Handling Parameter - i.e. it is the mode of operation which decides what actions to take on your features, whether they are rich or not.
For that reason we won't be exposing the following hacks in Workbench... you'll need to use the FMEFunctionCaller transformer.
Convert classic to rich geometry:
@Geometry(fme_rich_geometry)
Convert rich to classic geometry:
@Geometry(fme_classic_geometry)
Check if a feature has rich geometry:
@Geometry(has_rich_geometry)
This latter function returns "yes" if it does, "no" if not.
