/turf

A modular geospatial engine written in JavaScript

Primary LanguageJavaScriptMIT LicenseMIT

turf

Build Status

A modular geospatial engine written in JavaScript

turfjs.org


Turf is a JavaScript library for spatial analysis. It includes traditional spatial operations, helper functions for creating GeoJSON data, and data classification and statistics tools. Turf can be added to your website as a client-side plugin, or you can run Turf server-side with Node.js (see below).

##Installation

In Node.js:

npm install turf

In browser:

Download the minified file, and include it in a script tag. This will expose a global variable named "turf".

<script src="turf.min.js" charset="utf-8"></script>

Browserify:

All of Turf's functions can also be installed as seperate modules. This works well with tools like browserify where you only want to install only the code you need. It also allows you to mix and match modules as needed. This is the recommended usage pattern for most production environments. For example, to install the point and buffer modules use:

npm install turf-point
npm install turf-buffer

###Data in Turf

Turf uses GeoJSON for all geographic data. Turf expects the data to be standard WGS84 longitude, latitude coordinates. Check out geojson.io for a tool to easily create this data.

Most Turf functions work with GeoJSON features. These are are pieces of data that represent a collection of properties (ie: population, elevation, zipcode, etc.) along with a geometry. GeoJSON has several geometry types such as:

  • Point
  • LineString
  • Polygon

Turf provides a few geometry functions of its own. These are nothing more than simple (and optional) wrappers that output plain old GeoJSON. For example, these two methods of creating a point are functionally equivalent:

var point1 = turf.point(0,0);

var point2 = {
  type: 'Feature',
  geometry: {
    type: 'Point',
    coordinates: [0, 0]
  },
  properties: {}
};

##Functions

####geometry

Build Status point

Build Status linestring

Build Status polygon

Build Status featurecollection

####joins

Build Status inside

Build Status within

Build Status tag

####data Build Status remove

Build Status filter

Build Status sample

####measurement Build Status distance

Build Status area

Build Status nearest

Build Status bbox-polygon

Build Status envelope

Build Status extent

Build Status square

Build Status size

Build Status center

Build Status centroid

Build Status point-on-surface

Build Status midpoint

Build Status bearing

Build Status destination

Build Status line-distance

Build Status along

####interpolation Build Status tin

Build Status grid

Build Status hex

Build Status planepoint

Build Status isolines

Build Status isobands

####classification Build Status quantile

Build Status jenks

Build Status reclass

####aggregation Build Status average

Build Status median

Build Status sum

Build Status min

Build Status max

Build Status count

Build Status deviation

Build Status variance

Build Status aggregate

####transformation Build Status buffer

Build Status bezier

Build Status simplify

Build Status union

Build Status merge

Build Status intersect

Build Status erase

Build Status convex

Build Status concave

####misc Build Status flip

Build Status explode

Build Status combine

Build Status is-clockwise

Build Status kinks