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 separate modules. This works well with tools like browserify where you want to install only the code you need. It also allows you to mix and match modules. This is the recommended usage pattern for most production environments. For example, to install the point and buffer modules use:
npm install turf-point 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:
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
point
linestring
polygon
featurecollection
####joins
inside
within
tag
####data
remove
filter
sample
####measurement
distance
area
nearest
bbox-polygon
envelope
extent
square
size
center
centroid
point-on-surface
midpoint
bearing
destination
line-distance
along
####interpolation
tin
planepoint
isolines
isobands
####grids
point-grid
square-grid
hex-grid
triangle-grid
####classification
quantile
jenks
reclass
####aggregation
average
median
sum
min
max
count
deviation
variance
aggregate
####transformation
buffer
bezier
simplify
union
merge
intersect
erase
convex
concave
####misc
flip
explode
combine
is-clockwise
kinks