lib/geo/turf.ex
defmodule Geo.Turf do
@moduledoc """
# Geo.Turf
An Elixir spatial analysis tool for the [Geo](https://github.com/bryanjos/geo) library ported from [TurfJS](http://turfjs.org/).
## Warning
*At the moment the library is in early development mode. The API could, and propably will, change on any moment.*
## Usage
The library can perform functions on [Geo](https://github.com/bryanjos/geo) objects as well as basic mathematic functions useful in spatial analysis. At the moment Geo.Turf expects WGS84 coordinates.
For example:
* `Geo.Turf.Measure.along/3`: Make a `%Geo.Point{}` at a definded distance from the start of a `%Geo.LineString{}` .
* `Geo.Turf.Measure.along_midpoint/1`: Make a `%Geo.Point{}` at a the middle of a `%Geo.LineString{}` .
* `Geo.Turf.Measure.center/1`: Makes a `%Geo.Point{}` at the center of a Feature.
* `Geo.Turf.Measure.close_to/4`: Check if 2 `%Geo.Point{}` items are close to each other.
* `Geo.Turf.Measure.distance/3`: Check the distance between 2 `%Geo.Point{}` items.
* `Geo.Turf.Measure.length_of/2`: Gives the length of a `%Geo.LineString{}` or the circumference of a `%Geo.Polygon{}`
## Suggestions
If there are functions you need from [TurfJS](http://turfjs.org/) or just things you thought of please just make an issue for it. Including a test for it would be great.
"""
@type coordinates :: {number(), number()}
@type point :: Geo.Point.t() | coordinates()
end