Skip to main content

LineLabeller

  • March 4, 2026
  • 0 replies
  • 8 views

fmelizard
Safer
Forum|alt.badge.img+22
FME Hub user dmitribagh just uploaded a new transformer to the FME Hub.

Provides a high-fidelity alternative to standard FME labeling when working with complex, curved linear features. Standard labeling tools struggle with character-level rotation on tight curves, and advanced plugins can be cost-prohibitive. This transformer uses a "Mapnik-proxy" technique to ensure text follows the road spine with mathematical precision.

Input

Line Geometry: The transformer accepts linear features.

Rejection: Any non-linear features (Points, Polygons, Nulls) will be rejected to ensure the linear referencing and measure-based sorting logic remains intact.

Output

Labels: Depending on user settings, labels are output as either:

Multi-text Features: Individual characters placed as text entities, ideal for further vector styling or CAD export.

Stroked Polygons: Characters converted into vector shapes. This ensures the font renders exactly the same on every system, regardless of whether the font is installed.

Parameters

Name

The attribute containing the text string to be used for the label (e.g., FULLNAME).

Label Height in Ground Units

The desired height of the text in map units (e.g., meters). This is the master driver for the transformer; all internal offsets and tolerances scale automatically based on this value.

Spacing

Label Spacing: The distance (in pixels) between repeated labels along a single long line. Setting this to 0 will place only a single label per feature.

Character Spacing

The horizontal gap between individual letters. Use 0 for standard Monospace fonts.

Use values > 20 for proportional fonts (like Georgia) to mask alignment shifts.

Font

Font Name: Specify the font family.

Note: Optimized for Monospace fonts (SF Mono, Menlo, Courier, Consolas). For non-monospace fonts, high Character Spacing values are required for clean results.

Stroke Labels

Choose Yes to output labels as geometric polygons or No to keep them as text entities.

Usage Notes

Choosing the Right Font

For perfectly "locked" alignment where characters touch, always use a Monospace font. Because every character has the same width, the transformer can calculate the exact center of every glyph.

The "Optical Spacing" Trick

If your map design requires a proportional font (like Georgia or Arial), you must increase the Character Spacing (typically to 25 or 30). This creates a "spaced-out" aesthetic that masks the slight irregularities caused by varying letter widths (like a thin "i" vs. a wide "w"), resulting in a sophisticated, intentional look on curved roads.

Performance

Because this transformer performs character-level calculations and raster-to-vector proxies, processing time increases with label density. For large city-wide datasets, consider filtering for major roads first to maintain optimal performance.

Compatibility & CAD Output

When writing to CAD-based systems (AutoCAD DWG, Bentley MicroStation DGN), please note the following:

- Data Inspector vs. Native CAD: The alignment and rotation seen in the FME Data Inspector may vary slightly from the final result in CAD software. This is because each system uses unique internal engines to render text justification and font metrics.

- The "Stroked" Solution: For 100% visual fidelity across all platforms (including DWG/DGN), set Stroke Labels to Yes. This outputs the text as geometric polygons, bypassing the target system's font engine entirely.

- Text Entities: If outputting as native text entities, the transformer provides a single anchor point per character. You may need to use a DGNStyler or DWGStyler after this transformer to ensure the "Justification" matches your intended anchor (Bottom-Center for spaced-out text).

- Format Specifics: Unlike specialized plugins (e.g., MapText), this transformer does not pre-calculate format-specific headers for every individual GIS/CAD system.

- Scale Integrity: To avoid character-sorting errors, ensure your Label Spacing is at least 1.5x the total horizontal length of your text string. If labels appear scrambled or overlapping, it is a sign that the spacing between anchor points is too small for the chosen font size.

- Unit Consistency: This transformer calculates geometry based on the units of your Coordinate System. It is highly recommended to use Projected systems. Using Geographic systems (Degrees) will require extremely small decimal values for Label Height (e.g., 0.0001) and may lead to precision errors.



Would you like to know more? Click here to find out more details!
This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.