GeometryExtractor
Extracts the geometry of a feature according to the setting of the geometry encoding parameter.
The resulting encoded geometry is added to the feature in an attribute. This attribute can later be restored as the feature's geometry via the GeometryReplacer transformer.
This transformer is often used to make a copy of the feature's geometry into an attribute before some temporary geometry change is made, so that it can later be restored. Alternatively, the geometry may be extracted to be stored in a database or other file format that cannot handle geometry, but can handle large attributes as blobs or text strings. Later, FME can read this data back and restore the geometry via the GeometryReplacer transformer.
Note that geometry-related format-specific attributes (such as such as geodb_type
, autocad_entity
, or shapefile_type
) and coordinate systems are not extracted.
Usage Notes
-
GeometryExtractor does not perform any repairs to feature geometries during extraction. Geometries are extracted in their current state.
-
To carry out a similar operation on raster data, please use the RasterExtractor transformer. For point cloud data, please use the PointCloudExtractor.
-
Be sure to position this transformer as close as possible to where the geometry attribute is being used. Positioning the transformer too early can cause unnecessary use of system resources.
-
Geometry stored as an attribute may not retain its coordinate system. Use a CoordinateSystemExtractor if necessary.
Configuration
Output Ports
Features whose geometry was successfully encoded into the Destination Geometry Attribute are output through this port.
Features whose geometry could not be extracted into the chosen encoding are output through this port.
Rejected features will have an fme_rejection_code attribute with one of the following values: INVALID_FEATURE_LOCATION, INVALID_GEOMETRY_VERTICES, INVALID_GEOMETRY_TYPE.
Note: Feature order may change in relation to other output ports. Feature order per port is maintained.
Parameters
Geometry Encoding |
This parameter can be set to Encoded Polyline, Esri JSON, FME Binary, FME XML, Geo (Microformat), Geohash, GeoJSON, GeoRSS Simple, Geotagging GeoSMS (RFC 5870), GML, hexadecimal-encoded FME Binary, hexadecimal-encoded OGC Well Known Binary (wkbhex), ISO 6709 Geographic Point, KML, MGRS, Microsoft SQL Server Binary, OGC Open GeoSMS, OGC Well Known Binary (wkb), OGC Well Known Text (wkt), or QlikMaps Encoded Polyline. The most efficient and truest representation of the geometry is FME Binary, and this should be used in most cases. All the FME representations can accommodate all aspects of the FME Geometry Model, including measures and paths consisting of multiple linear segments; however, both the FME XML and Hex Encoded FME Binary representations impose some overhead in translating between the internal binary representation and the ASCII-encoded representation. The OGC variants are useful if interaction with other OGC supporting systems is required. However, some characteristics of geometries may be lost in these modes; for instance, any path will be flattened into a single linestring. The GeoJSON, Esri JSON, and GeoRSS Simple encodings may not preserve all geometry characteristics. For example, arcs will be stroked to lines, and ellipses stroked to polygons. These encodings also do not support measures. The Geohash encoding will not preserve any geometry characteristics. Instead, they will be converted to a point represented by a geohash. The OGC Open GeoSMS, Geotagging GeoSMS, and Geo encodings will not preserve any geometry characteristics. For example: arcs, polygons, ellipses, etc., will be converted into a point at the center of their bounding box and will then be encoded to their respective formats. If the geometry has a coordinate system other than LL-WGS84, a temporary copy will be created and reprojected; however, the source geometry will not be modified. The Encoded Polyline encoding is useful if working with the Google Maps API and can be used to represent points, lines and polygons. The QlikMaps Encoded Polyline encoding is like the Encoded Polyline encoding, but it can also be used to represent donuts and multi areas. The ISO 6709 Geographic Point encoding serializes a geometry into the ISO 6709 point format. Non-point geometries are serialized as a sequence of geographic points. The MGRS encoding calculates a Military Grid Reference System (MGRS) code based on the geometry of a feature. The MGRS code for a position consists of a group of letters and numbers which include the following elements:
For MGRS, if a non-point feature (that is, a feature with more than one point) is passed in, then the first point of the geometry will be used for the conversion. The Microsoft SQL Server Binary encoding is used to serialize geometries to the native storage format used in Microsoft SQL Server. |
Remove Geometry |
Removes geometry after extraction. The default value is No. If the value is set to Yes, the geometry will be removed from the feature after it has been extracted into an attribute. This option can be useful for saving memory space if the true geometry will no longer be needed. |
Precision/Length of Geohash |
You can choose the length in characters of the resulting Geohash; this also shows the approximate precision. Please note that the precision of a Geohash is limited by the precision of the source geometry. |
Omit XML Namespace Declarations |
For XML output formats (except FME XML), this parameter controls whether or not the output contains XML namespace declarations. All well-formed XML output must contain namespace declarations. However, if you are manually inserting the transformer output into a larger XML document, you may want to omit the namespace declarations. GeoRSS/KML/GML Geometry Encoding only. |
Prefer Polygons Over Surfaces |
Determines if FME writes the Geometries as a gml:Polygon or a gml:PolygonPatch. The default value is 'no', which prints out gml:Surface geometries. If 'yes', FME creates the geometry as a gml:Polygon in the output. GML v3.1.1/GML v3.2.1 only. |
GML srsName |
This parameter can overwrite the CRS value that is written in the GML instance’s srsName attributes. By default, the FME coordinate system name in a feature is transferred directly onto the srsName attribute. Using this parameter allows you to provide your own URN CRS string for the srsName attributes. GML v3.1.1/GML v3.2.1 only |
GML SRS Axis Order |
This parameter specifies the axis order for a coordinate tuple in a GML <pos> or <posList> element. The valid values are:
There is no default value. GML v3.1.1/GML v3.2.1 only. |
Generate Geometry gml:id(s) |
A gml_id geometry trait, if present, is used to populate the gml:id attribute of a GML geometry element. For example, a FME Point with the gml_id trait will be written as <gml:Point gml:id="…"> When this parameter is set to Yes, a gml:id will be automatically generated for GML geometries without a corresponding gml_id geometry trait. The default value is No. GML v3.1.1/GML v3.2.1 only. |
Format |
Indicates the encoding for the lat/long coordinates. The coordinates of the feature will be treated as degrees, regardless of any specified coordinate systems. The Reprojector transformer can be used to first convert other coordinate systems into lat/long coordinates. |
Max Decimal Places |
Specifies the maximum number of decimal places. |
Coordinate Precision (Maximum Number of Fractional Digits) |
This parameter is enabled when Geometry Encoding is GeoJSON or EsriJSON. The transformer uses this value to limit the number of decimal digits printed for each coordinate. Valid values are 1 to 15. The default value is 7, which gives roughly 1 centimeter accuracy when writing WGS84 coordinates. A lower number of digits can dramatically reduce the size of the output JSON data. |
Ellipsoid |
The ellipsoid used for the conversion. This can be any ellipsoid name supported by FME. |
Lettering Type |
The type of lettering used can be WGS84 or Bessel. |
Precision |
The granularity of the resulting code is determined by the specified Precision which is an integer from 0 to 5 (inclusive). A precision of 5 locates a point within 1-meter square and a precision of 0 locates a point within 100-km square. |
Format |
If Geometry Encoding is Microsoft SQL Server Binary, choose whether it is a serialized Geometry or Geography. |
OGC Version (WKT/WKB Only) |
You can choose between versions 1.1 and 1.2. Version 1.2 contains two key improvements: support for measures and z-values. Note that the only measure considered when producing an OGC representation is the "default" (unnamed) measure. |
OGC WKT Precision |
The precision of the strings used to represent the coordinates of the geometry. The options are:
(WKT Geometry Encoding only) |
OGC Open GeoSMS URL Prefix |
This parameter allows you to choose the URL of the mapping service to be used by the OGC Open GeoSMS. The default value is Google Maps. (OGC Open GeoSMS Geometry Encoding only) |
Geometry |
Name the attribute to hold the encoded geometry. |
Extended Polyline Levels |
Name the attribute to hold the encoded levels of a polyline. |
Editing Transformer Parameters
Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.
Defining Values
There are several ways to define a value for use in a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.
Using the Text Editor
The Text Editor provides a convenient way to construct text strings (including regular expressions) from various data sources, such as attributes, parameters, and constants, where the result is used directly inside a parameter.
Using the Arithmetic Editor
The Arithmetic Editor provides a convenient way to construct math expressions from various data sources, such as attributes, parameters, and feature functions, where the result is used directly inside a parameter.
Conditional Values
Set values depending on one or more test conditions that either pass or fail.
Parameter Condition Definition Dialog
Content
Expressions and strings can include a number of functions, characters, parameters, and more.
When setting values - whether entered directly in a parameter or constructed using one of the editors - strings and expressions containing String, Math, Date/Time or FME Feature Functions will have those functions evaluated. Therefore, the names of these functions (in the form @<function_name>) should not be used as literal string values.
These functions manipulate and format strings. | |
Special Characters |
A set of control characters is available in the Text Editor. |
Math functions are available in both editors. | |
Date/Time Functions | Date and time functions are available in the Text Editor. |
These operators are available in the Arithmetic Editor. | |
These return primarily feature-specific values. | |
FME and workspace-specific parameters may be used. | |
Creating and Modifying User Parameters | Create your own editable parameters. |
Dialog Options - Tables
Transformers with table-style parameters have additional tools for populating and manipulating values.
Row Reordering
|
Enabled once you have clicked on a row item. Choices include:
|
Cut, Copy, and Paste
|
Enabled once you have clicked on a row item. Choices include:
Cut, copy, and paste may be used within a transformer, or between transformers. |
Filter
|
Start typing a string, and the matrix will only display rows matching those characters. Searches all columns. This only affects the display of attributes within the transformer - it does not alter which attributes are output. |
Import
|
Import populates the table with a set of new attributes read from a dataset. Specific application varies between transformers. |
Reset/Refresh
|
Generally resets the table to its initial state, and may provide additional options to remove invalid entries. Behavior varies between transformers. |
Note: Not all tools are available in all transformers.
Transformer History
This transformer contains the functionality of the now-deprecated OGCGeometryExtractor and XMLGeometryExtractor.
FME Community
The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.
Search for samples and information about this transformer on the FME Community.