Files
-
- 800 KB
- Download
Introduction
The Geometry Parameter in FME Flow enables users to draw an area of interest on a map and then have that area automatically input into a workspace. This functionality is first set up in FME Workbench using a combination of the Geometry published parameter and the GeometryReplacer transformer. Then, in FME Flow, the user can access the map anywhere they can view published parameters (e.g., Run Workspace, FME Apps).
The Geometry Parameter was first introduced in FME 2020.0; however, this tutorial uses screenshots for FME 2025.2. In previous versions, it was also referred to as the Geometry Picker.
The source data and complete workspace template can be downloaded from the Files section.
Step-by-Step Instructions
In this scenario, we want to create a workspace where the construction company can draw on a map of where they will be working. Then, a 100m buffer surrounding their construction area will be set, and the residents of the neighboring houses will be notified.
In FME 2025.2, optional input transformers were introduced. If you are using 2025.2 and newer, the FeatureReader no longer requires a creator to initiate it. Other transformers still require this input, however. In this tutorial, we will be using the GeometryReplacer transformer which still requires a Creator, therefore we will continue to use a Creator for the FeatureReader.
As of FME 2025.2, many transformers have been updated to not require input from the creator transformer. For a list of all the transformers with this improvement, please see Transformers with an Optional Input Port
1. Open FME Workbench
Open a New workspace in FME Workbench. Add a Creator transformer, then add a FeatureReader. Connect the Creator to the FeatureReader Initiator input port. In the FeatureReader parameters, set the following:
- Format: Esri Geodatabase (File Geodb Open API)
- Dataset: Addresses.gdb
-
Feature Types to Read: PostalAddress
- Click the ellipsis to select the feature type
2. Create Geometry Published Parameter
We want the user to have the ability to draw an area of interest. This can be done using a geometry type user parameter.
In the Navigator window, right-click on User Parameters, then select ‘Manage User Parameters…’
In the User Parameters dialog, add a new Geometry parameter by clicking the green plus (+) button, hovering over Spatial, then selecting Geometry:
Enter the following properties:
- Parameter Identifier: GEOM_COORDS
- Label: Select construction area
- Geometry Encoding: GeoJSON
- Geometry Types: Box Line Polygon
-
Specify initial bounds for map display: Enabled
- Top (-90..90):
49.2548 - Left (-180..180):
-123.244 - Bottom (-90..90):
49.3034 - Right (-180..180):
-123.071
- Top (-90..90):
If you are unsure of your specific initial bounds, see the How to Determine Map Bounds with FME section at the bottom of this article.
3. Add a GeometryReplacer
Now that we have set up the geometry published parameter, we need to use it within the workflow. Add a GeometryReplacer transformer to the canvas and connect its Input port to the Creator.
Open the parameters for the GeometryReplacer and set the following:
- Geometry Encoding: GeoJSON
-
Geometry Source:
$(GEOM_COORDS)- Click the drop-down to find the User Parameter we created
The geometry published parameter works with both GeoJSON and OGC Well Known Text encoding.
4. Set Coordinate System with CoordinateSystemSetter
We want to ensure that our data is in LL84, as this is what the geometry user parameter accepts as values.
Add a CoordinateSystemSetter transformer to the canvas and connect its Input port to the GeometryReplacer Output port. In the parameters, set the Coordinate System to LL84:
- Coordinate System: LL84
5. Reproject Coordinates using Reprojector
We also need to ensure our PostalAddress points are in LL84. Add a Reprojector transformer to the canvas and connect its input port to the Feature Reader PostalAddress output port. Set the destination coordinate system in the transformer parameters:
- Destination Coordinate System: LL84
Your workflow should look like this once both the coordinates are set:
6. Buffer Area
We want to notify neighboring residents within 100 meters of the construction area, which we can do using a Bufferer. Connect the CoordinateSystemSetter Output port for a Bufferer Input port. In the Bufferer parameters, set the following:
- Buffer Type: Area (2D)
- Buffer Distance: 100
- Buffer Distance Units: Meters
Click OK.
7. Clip to Buffer with Clipper
Now we need to clip the data to the buffered radius of the selected construction area and the PostalAddress points.
Add a Clipper transformer to the canvas. Connect the Reprojector Reprojected output port to the Clipper Candidate input port, then connect the Bufferer Buffered output port to the Clipper Clipper input port.
8. Clean up Attributes
One final step before we can write out our data is to clean up the attributes. Add an AttributeKeeper to the canvas and connect its Input port to the Clipper Inside output port. In the parameters, set the following:
-
Attributes to Keep:
- OWNERNM1
- POSTALADDRESS
- PSTLADDRESS
- PSTLCITY
-
PSTLPROV
-
Click the ellipsis to select the attributes individually, or copy and paste the following into the Attributes to Keep box:
OWNERNM1,POSTALCODE,PSTLADDRESS,PSTLCITY,PSTLPROV
-
9. Add Writer
Now we can write out the data to a Microsoft Excel file. Add a Microsoft Excel Writer to the canvas by clicking the Writer button in the Toolbar and setting the following:
- Format: Microsoft Excel
-
Dataset: /NotifyAddresses.xlsx
- Browse to your desired output destination
- Sheet Definition: Automatic…
Click OK. In the Feature Type dialog, set the sheet name then click OK:
- Sheet Name: NotifyList
Connect the AttributeKeeper Output port to the NotifyList writer feature type. The final workspace should look like this:
10. Publish to FME Flow
With the workspace complete, we can now publish to FME Flow. Save the workspace as UsingTheGeometryParameter.fmw.
Connect to FME Flow within FME Workbench (in the Toolbar), if you haven’t already done so.
Click the Publish button in the Toolbar or go to Deploy > Publish to FME Flow… (this option is under the File menu for FME 2025.0 and earlier)
In the Publish Workspace dialog, select your FME Flow connection, then create a new repository called GeometryParameter
- Repository Name: GeometryParameter
Click the ‘Select Files…’ button so we can include the data. To upload the geodatabase folder, we must choose a shared resource folder instead of the created repository. In the Select Files to Upload dialog, the location is currently set to ‘Repository (Files Only)’ with the Addresses.gdb grayed out.
Click ‘Select Location…’ and change the setting from ‘Upload to repository’ to ‘Upload to a shared resource folder’.
Select ‘Data’ from the list of folders and then click on ‘New Folder…’ and name the folder ‘Addresses’, then click OK.
Click OK again and the Addresses.gdb should no longer be grayed out. Select this file and click OK.
The ‘Upload data files’ option at the bottom of the Publish Workspace dialog should now be enabled.
Click Next.
In the Register Services dialog, enable ‘Data Download’ and ‘Job Submitter’ as the services, then click Publish.
-
Service:
- Data Download
- Job Submitter
For detailed instructions on how to create a connection to FME Flow and publish, please see below:
-
To publish a workspace from FME Workbench to FME Flow, follow the generic instructions below using the specific details listed in the article. If the article does not have a specific repository name listed, we recommend creating a Training repository. If a specific service is not listed in the article, please use the default Job Submitter.
1. Click Publish
From the File menu, click Publish to FME Flow, or from the toolbar ribbon, click Publish.
Toolbar Ribbon:

File Menu:
Deploy Menu (2025.1+):
2. Add a Web Connection
In the Publish to FME Flow wizard, a FME Flow connection needs to be selected or created. To create an FME Flow connection, click the drop-down under FME Flow Connection and select Connect to FME Flow.

The following instructions are for a basic connection, but if your FME Flow is set up for Microsoft Azure, SAML, or Windows Credentials, please see the Using Web Connections to Connect to FME Flow documentation.
An FME Flow Connection dialog will appear; here, we will set up the connection. The connection information and credentials can be obtained from your FME Flow Administrator. If you have not yet logged into FME Flow after installing, please do so prior to continuing, as you will be prompted to change the password from the default:
Username: admin
Password: admin-
• Web Service: FME Flow
• Server URL: http://localhost
• Connection Name: Training FME Flow
• Authentication: Basic
• Username: your username
• Password: your password
Click OK. FME will try to authenticate the connection. Once authenticated, this connection will be available whenever you publish a workspace. The connection will only need to be created once.
-
• Web Service: FME Server
• Connection Name: Training FME Server
• Server URL: http://localhost
• Username: your username
• Password: your password
Click Authenticate. FME will try to authenticate the connection. Once authenticated, this connection will be available whenever you publish a workspace. The connection will only need to be created once.
Click Next to move to the Create Repository page of the dialog
3. Create Repository
Repositories are used to store groups of related items that have been published to FME Flow (similar to directories). Items such as workspaces, source data, custom formats, custom transformers, and templates can be published to a repository.
If you need to create a new repository, click on the New button next to Repository Name. Enter the repository name and an optional description. Click OK to close the Create New Repository dialog.

To select an existing repository, click the drop-down next to Repository Name and select the desired repository.

4. Upload Files
Some workspaces require additional files to run correctly on FME Flow, so these need to be uploaded along with the workspace. To upload files, enable Upload data files at the bottom of the dialog.

When files are uploaded through the publishing menu, they are stored within the repository. If you want to upload folder files (such as geodatabases) or to specify where the files stored, the Select Files button allows you to do that. For detailed instructions on how to use the Select Files button, see the documentation.
5. Register Services
The final step before publishing a workspace is to register services. Services control how the data will be output after the workspace is run.

Services return results in different forms:
• Data Download Service returns results as a downloadable zip file
• Data Streaming Service returns results as a data stream
• Job Submitter Service accepts and runs workspace job requests
• KML Network Link returns a KML Network Link that can be used in Google Earth
• Notification Service allows for event-driven messaging
Typically, the Job Submitter is always enabled, but multiple services can be enabled. Once services have been enabled, click Publish.
6. Review Translation Log
To confirm whether or not the workspace was published successfully, check the Translation Log. The Translation log will show which repository you published to, which files were included, and a quick link to run the workspace.

-
11. Run Workspace in FME Flow
Log in to FME Flow and click on Run Workspace.
In the Run Workspace page, set the following parameters:
- Repository: GeometryParameter
- Workspace: UsingTheGeometryParameter.fmw
- Service: Data Download
Under User Parameters, you should see the ‘Select construction area’ parameter. Click on the map icon to select the extent.
When you click on the map icon, the Geometry Parameter dialog will appear, which will have a map of the area set up in the published parameter, as well as options along the top to determine which geometry type you wish to use for your selection. If you would like to change the background map, refer to the How to Set a Custom Basemap section of the article.
Zoom into the area of interest using either your mouse scroll wheel or the plus sign at the top. For this example, we will zoom in on downtown Vancouver and use the polygon tool to select a small area of buildings.
For this workspace to run correctly, buildings with addresses need to be selected. If an area is selected without an address the workspace won’t write out any data.
To close off an area in a polygon, click on the starting point. Once the area is selected, click Confirm.
GeoJSON coordinates will now be available in the 'Select construction area' text box. These coordinates can be put into the user parameter within FME Workbench for testing the workspace. You can also manually paste them into the ‘Select construction area’ parameter instead of selecting on the map.
{"type":"Polygon","coordinates":[[[-123.125839,49.281219],[-123.12114,49.284368],[-123.120089,49.283794],[-123.125002,49.280589],[-123.125839,49.281219]]]}Once the map area has been selected, click Run to run the workspace in FME Flow.
12. Download and View Data
Once the workspace has finished running, click on the Data Download URL to download the data.
Extract and open the data in Microsoft Excel or FME Data Inspector. This list can then be used to send letters to the residents affected by the construction.
If you are getting 0 features being written out, try another area, as the workspace won’t work if an area with no address points is selected.
How to Determine Map Bounds with FME
If you are unsure of the coordinates for the map bounds, you can use the Geometry Parameter to acquire them.
1. Setup Initial Geometry Published Parameter
Create a Geometry published parameter, but leave all properties at their default values.
2. Publish to FME Flow
Ensure there is a Creator on the canvas (not required for FME 2025.2+), then publish to FME Flow.
3. Open the Geometry Parameter
In FME Flow, go to the Run Workspace page, then browse to the location where you published the workspace. Click on the map icon next to Select Geometry (which is the default text).
Then, in the Select Geometry pop-up, use the search function or use the hand tool to navigate to your wide area of interest.
Then, use the polygon, rectangle, or polyline tool to draw the desired area, then click Confirm.
You can then copy the coordinates from the text box into the Geometry published parameter in FME Workbench for testing.
How to Set a Custom Basemap
By default, the basemap in the Geometry Parameter is set to OpenStreetMap’s standard tile layer. The basemap can be changed by providing a different Web Map Tiles Service (WMTS). The default coordinate system for displaying basemaps is EPSG:3857. Geometries drawn on the Geometry Parameter are still in EPSG:4326. The following steps show you how to set a basemap different from the default.
1. Copy the WMTS URL.
Copy the WMTS basemap URL for the service you wish to display. The Geometry Parameter is limited to XYZ-formatted tile layer links, which generally look like this:
https://<service_url>/{z}/{x}/{y}Depending on the service configuration, a WMTS template URL may follow the OGC specification, which uses different variable names for the tile column, row, and matrix. These URLs can be converted to the XYZ standard. For example, an Esri MapServer and ImageServer template URL is usable in the Geometry Parameter after being reformatted to the following styles:
https://services.arcgisonline.com/arcgis/rest/services/<service_name>/<ImageOrMapServer>/WMTS/tile/1.0.0/<layer_name>/<style>/<tileMatrixSet>/{z}/{y}/{x}https://portal_host/server/rest/services/Hosted/<service_name>/<ImageOrMapServer>/WMTS/tile/1.0.0/<layer_name>/<style>/<tileMatrixSet>/{z}/{y}/{x}A list of public tile layer services includes the following:
| Tile Service | URL |
| Google Maps (Roads) | https://mt1.google.com/vt/lyrs=m&hl=en&x={x}&y={y}&z={z} |
| Google Maps (Hybrid) | https://mt1.google.com/vt/lyrs=y&hl=en&x={x}&y={y}&z={z} |
| Esri (Standard) | https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x} |
| Esri (Satellite) | https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x} |
| Esri (Topographic) | http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x} |
The default OpenStreetMap URL has an additional {s} variable at the beginning. This variable is meant to randomize requests to the different OSM tile servers (a, b, c) and is not required for most other tile service URLs.
2. Paste the URL into the Geometry Parameter Settings
In the Geometry Parameter, click the Map Configuration button on the top right. In the Basemap URL parameter, replace the existing link with your WMTS URL and click Save.
In certain cases, a WMTS may not have tiles around the entire Earth. Before switching the WMTS URL, ensure that you pan the map view to a location where you know the tiles will display; otherwise, the map will turn grey, and you may not be able to find your tiles.
If the background map turns grey and fails to display, double-check that your URL is correct and that it’s working in a different client. If the map still fails to load, try zooming in or out, as the WMTS may not have tiles at the zoom level you were using immediately before switching the URL.
3. (Optional) Reset the Geometry Parameter to the Default Basemap
In the Geometry Parameter’s settings, click the Reset button to change the basemap URL back to the default OpenStreetMap tile server.
Search for Locations in the Map
The Search function is powered by the OpenStreetMap Nominatim tool for reverse geocoding names and addresses based on OSM data. Various third-party providers offer their own hosted Nominatim APIs for larger processing needs, and it’s possible to configure the Geometry Parameter to use these APIs instead. For more information on Nominatim and alternative providers, please refer to the OpenStreetMap wiki.
To change the Nominatim, go into the Geometry Parameter’s map configuration settings. In the Nominatim URL parameter, paste your own provider’s URL. To revert Nominatim to its default OpenStreetMap URL, click Reset and Save.
Additional Resources
Geometry Published Parameter Documentation
Connecting to FME Flow Documentation
Data Attribution
The data used here originates from open data made available by the City of Vancouver, British Columbia. It contains information licensed under the Open Government License - Vancouver.