## Terraformer Core

### Documentation Get Core

> Tools and objects for working with and transforming GeoJSON.

The core Terraformer library provides a series of `Terraformer.Primitves` which wrap GeoJSON objects for additional functionality and a series of `Terraformer.Tools` for manipulating and performing calculations on coordinates.

You can also use the core library to seeing if an object contains or intersects another obejct, convert and object to a different spatial reference or transform an objects coordinates.

The core library is also used in most other components of Terraformer for performing basic tasks and calculations.

## GeoStore

### Documentation Get GeoStore

> A lightweight API that allows you to store, index and query geographic data.

GeoStore is a lightweight API that allows you to store, index and query geographic data with a variety of indexes and persistence methods. Each GeoStore consists of…

1. A spatial index which is responsible for indexing and optimizing the geographic data in the store.

2. A data store which is responsible for persisting data, either holding it in memory or persisting it to a backend database.

3. Any number of secondary indexes which index properties associated with your geographic data.

## ArcGIS Parser

### Documentation Get ArcGIS Parser

Allows you to convert between Terraformer Primitives or GeoJSON and the ArcGIS Geometry Objects.

    // parse ArcGIS JSON, convert it to a Terraformer.Primitive
    var primitive = Terraformer.ArcGIS.parse({
      x:"-122.6764",
      y:"45.5165",
      spatialReference: {
        wkid: 4326
      }
    });

    // take a Terraformer.Primitive or GeoJSON and convert it to ArcGIS JSON
    var point = Terraformer.ArcGIS.convert({
      "type": "Point",
      "coordinates": [45.5165, -122.6764]
    });

## Well Known Text Parser

### Documentation Get WKT Parser

Well Known Text is a format used by databases like PostGIS. With Terraformer’s WKT parser you can convert between this format and GeoJSON.

    // parse a WKT file, convert it into a primitive
    var primitive = Terraformer.WKT.parse('LINESTRING (30 10, 10 30, 40 40)');

    // take a primitive and convert it into a WKT representation
    var polygon = Terraformer.WKT.convert({
      "type": "Polygon",
      "coordinates": [
        [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],
        [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]
      ]
    });