geojson-1.3.2: A thin GeoJSON Layer above the aeson library

Copyright(C) 2014-2018 HS-GeoJSON Project
LicenseBSD-style (see the file LICENSE.md)
MaintainerAndrew Newman
Safe HaskellNone
LanguageHaskell2010

Data.LineString

Contents

Description

Refer to the GeoJSON Spec http://geojson.org/geojson-spec.html#linestring

A LinearString is a List with at least 2 elements

Synopsis

Type

data LineString a Source #

a LineString has at least 2 elements

Instances

Functor LineString Source # 

Methods

fmap :: (a -> b) -> LineString a -> LineString b #

(<$) :: a -> LineString b -> LineString a #

Foldable LineString Source #

This instance of Foldable will run through the entire ring, closing the loop by also passing the initial element in again at the end.

Methods

fold :: Monoid m => LineString m -> m #

foldMap :: Monoid m => (a -> m) -> LineString a -> m #

foldr :: (a -> b -> b) -> b -> LineString a -> b #

foldr' :: (a -> b -> b) -> b -> LineString a -> b #

foldl :: (b -> a -> b) -> b -> LineString a -> b #

foldl' :: (b -> a -> b) -> b -> LineString a -> b #

foldr1 :: (a -> a -> a) -> LineString a -> a #

foldl1 :: (a -> a -> a) -> LineString a -> a #

toList :: LineString a -> [a] #

null :: LineString a -> Bool #

length :: LineString a -> Int #

elem :: Eq a => a -> LineString a -> Bool #

maximum :: Ord a => LineString a -> a #

minimum :: Ord a => LineString a -> a #

sum :: Num a => LineString a -> a #

product :: Num a => LineString a -> a #

Traversable LineString Source # 

Methods

traverse :: Applicative f => (a -> f b) -> LineString a -> f (LineString b) #

sequenceA :: Applicative f => LineString (f a) -> f (LineString a) #

mapM :: Monad m => (a -> m b) -> LineString a -> m (LineString b) #

sequence :: Monad m => LineString (m a) -> m (LineString a) #

Eq a => Eq (LineString a) Source # 

Methods

(==) :: LineString a -> LineString a -> Bool #

(/=) :: LineString a -> LineString a -> Bool #

Show a => Show (LineString a) Source # 
ToJSON a => ToJSON (LineString a) Source # 
(FromJSON a, Show a) => FromJSON (LineString a) Source # 

data ListToLineStringError Source #

When converting a List to a LineString, here is a list of things that can go wrong:

  • The list was empty
  • The list only had one element

Constructors

ListEmpty 
SingletonList 

Functions

fromLineString :: LineString a -> [a] Source #

This function converts it into a list and appends the given element to the end.

fromList :: Validate v => [a] -> v ListToLineStringError (LineString a) Source #

creates a LineString out of a list of elements, if there are enough elements (needs at least 2) elements

makeLineString Source #

Arguments

:: a

The first element

-> a

The second element

-> [a]

The rest of the optional elements

-> LineString a 

Creates a LineString makeLineString x y zs creates a LineString homomorphic to the list [x, y] ++ zs

lineStringHead :: LineString a -> a Source #

returns the element at the head of the string

lineStringLast :: LineString a -> a Source #

returns the last element in the string

lineStringLength :: LineString a -> Int Source #

returns the number of elements in the list, including the replicated element at the end of the list.