# TopoJSON Server The **topojson-server** module provides tools for converting GeoJSON to [TopoJSON](https://github.com/topojson). See [How to Infer Topology](https://bost.ocks.org/mike/topology/) for details on how the topology is constructed. See [shapefile](https://github.com/mbostock/shapefile) for converting ESRI shapefiles to GeoJSON, [ndjson-cli](https://github.com/mbostock/ndjson-cli) for manipulating newline-delimited JSON streams, [d3-geo-projection](https://github.com/d3/d3-geo-projection) for manipulating GeoJSON, and [topojson-client](https://github.com/topojson/topojson-client) for manipulating TopoJSON and converting it back to GeoJSON. See also [us-atlas](https://github.com/topojson/us-atlas) and [world-atlas](https://github.com/topojson/world-atlas) for pre-built TopoJSON. ## Installing If you use NPM, `npm install topojson-server`. Otherwise, download the [latest release](https://github.com/topojson/topojson-server/releases/latest). You can also load directly from [unpkg](https://unpkg.com). AMD, CommonJS, and vanilla environments are supported. In vanilla, a `topojson` global is exported: ```html ``` [Try topojson-server in your browser.](https://tonicdev.com/npm/topojson-server) ## API Reference # topojson.topology(objects[, quantization]) [<>](https://github.com/topojson/topojson-server/blob/master/src/topology.js "Source") Returns a TopoJSON topology for the specified [GeoJSON *objects*](http://geojson.org/geojson-spec.html#geojson-objects). The returned topology makes a shallow copy of the input *objects*: the identifier, bounding box, properties and coordinates of input objects may be shared with the output topology. If a *quantization* parameter is specified, the input geometry is quantized prior to computing the topology, the returned topology is quantized, and its arcs are [delta-encoded](https://github.com/topojson/topojson-specification/blob/master/README.md#213-arcs). Quantization is recommended to improve the quality of the topology if the input geometry is messy (*i.e.*, small floating point error means that adjacent boundaries do not have identical values); typical values are powers of ten, such as 1e4, 1e5 or 1e6. See also [topojson.quantize](https://github.com/topojson/topojson-client/blob/master/README.md#quantize) to quantize a topology after it has been constructed, without altering the topological relationships. ## Command-Line Reference ### geo2topo # geo2topo [options…] [name=]file… [<>](https://github.com/topojson/topojson-server/blob/master/bin/geo2topo "Source") Converts one or more GeoJSON objects to an output topology. For example, to convert a GeoJSON FeatureCollection in the input file us-states.json to a TopologyJSON topology in the output file us.json: ``` geo2topo states=us-states.json > us.json ``` The resulting topology has a “states” object which corresponds to the input geometry. For convenience, you can omit the object name and specify only the output *file* name; the object name will then be the basename of the file, with the directory and extension removed. For example, to convert the states.json GeoJSON FeatureCollection to a TopologyJSON topology with the “states” object in us.json: ``` geo2topo states.json > us.json ``` Any properties and identifiers of input [feature objects](https://tools.ietf.org/html/rfc7946#section-3.2) are propagated to the output. If you want to transform or filter properties, try [ndjson-cli](https://github.com/mbostock/ndjson-cli) as demonstrated in [Command-Line Cartography](https://medium.com/@mbostock/command-line-cartography-part-1-897aa8f8ca2c). See also [topo2geo](https://github.com/topojson/topojson-client/blob/master/README.md#topo2geo). # geo2topo -h
# geo2topo --help Output usage information. # geo2topo -V
# geo2topo --version Output the version number. # geo2topo -n
# geo2topo --newline-delimited Accept [newline-delimited JSON](http://ndjson.org/), with one feature per line. # geo2topo -o file
# geo2topo --out file Specify the output TopoJSON file name. Defaults to “-” for stdout. # geo2topo -q count
# geo2topo --quantization count Specify a pre-quantization paramter. 0 disables quantization. See topojson.topology for a description of quantization.