TopoJSON (Topology JavaScript Object Notation) Writer

Licensing options for this format begin with FME Professional Edition.

FME can read and write data in the TopoJSON (Topology JavaScript Object Notation) format.

TopoJson is an extension to GeoJSON that utilizes topology. Like the GeoJSON (Geographic JavaScript Object Notation) Reader/Writer, spatial data in JSON is identified using key/value pairs. However, unlike GeoJSON, TopoJSON reduces redundancies for related geometries by representing overlapping edges without duplication. This limitation makes GeoJSON less suitable than TopoJSON for applications that focuses on efficiency and compactness. The paragraph below gives an overview of TopoJSON syntax. For detailed information about the TopoJSON format, see the TopoJSON Format Specification on GitHub.

Overview

TopoJSON represents geometries as a collection of shared line segments called arcs, as referenced by zero-based index. This allows for reduction in redundancies mentioned above.

Similar to GeoJSON, the supported geometry types are Point, LineString, Polygon, MultiPoint, MultiLineString, and MultiPolygon.

Geometry Example

{"type": "LineString", "arcs": [2]}

where 2 refers to the arc topology.arcs[2].

In addition, TopoJSON uses quantized delta-encoding for integer coordinates. See

https://github.com/topojson/topojson-specification#225-polygon for an example.

Writer Overview

Each FME feature type will output a new file containing the topology JSON object.

Writer Geometry

FME feature geometry is written inside a TopoJSON geometries object will have the type of geometry as the value of the type keyword. TopoJSON is an extension of GeoJSON, thus the TopoJSON writer only supports linear geometry; arcs will be stroked to lines, and ellipses will be stroked to polygons. Also, paths are simplified to a single line, and an FME feature with text geometry only has its location written; the text value is ignored.

The value of the type key for an FME feature with aggregate geometry will be a GeometryCollection object, whose geometries key will have an array of TopoJSON geometry as its value.