Question

What is the Enhanced Geometry Model?

Answer


Enhanced 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 "Enhanced 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 Advanced workspace parameter - Geometry Handling.

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) Can I convert my data between enhanced 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 enhanced 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 enhanced 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 enhanced geometry:
    @Geometry(fme_rich_geometry)


Convert enhanced to classic geometry:

    @Geometry(fme_classic_geometry)


Check if a feature has enhanced geometry:

    @Geometry(has_rich_geometry)


This latter function returns "yes" if it does, "no" if not.