# NAME

Geo::WKT::Simple - Simple utils to parse/build Well Known Text(WKT) format string.

# SYNOPSIS

    use Geo::WKT::Simple;           # Export all
    or
    use Geo::WKT::Simple ':parse';  # Only WKT parser functions
    or
    use Geo::WKT::Simple ':make';   # Only WKT builder functions

    # WKT POINT
    wkt_parse_point('POINT(10 20)');                  #=> (10 20)
    wkt_make_point(10, 20);                           #=> POINT(10 20)

    # WKT LINESTRING
    wkt_parse_linestring('LINESTRING(1 2, 3 4)');     #=> ([ 1, 2 ], [ 3, 4 ])
    wkt_make_linestring([ 1, 2 ], [ 3, 4 ]);          #=> LINESTRING(1 2, 3 4)

    # WKT POLYGON
    wkt_parse_polygon('POLYGON((1 2, 3 4, 5 6, 1 2), (1 2, 3 4, 5 6, 1 2))');
    #=> (
    #      [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 1, 2 ] ],
    #      [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 1, 2 ] ],
    #   )
    wkt_make_polygon([
        [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 1, 2 ] ],
        [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 1, 2 ] ],
    ]) #=> 'POLYGON((1 2, 3 4, 5 6, 1 2), (1 2, 3 4, 5 6, 1 2))'

    # And like so on for (MULTI)LINESTRING|POLYGON

    # WKT GEOMETRYCOLLECTION
    wkt_parse_geometrycollection(
        'GEOMETRYCOLLECTION(POINT(10 20), LINESTRING(10 20, 30 40))'
    ); #=> ([ POINT => [ 10, 20 ] ], [ LINESTRING => [ [ 10, 20 ], [ 30, 40 ] ] ])
    wkt_make_geometrycollection(
        [ POINT => [ 10, 20 ] ], [ LINESTRING => [ [ 10, 20 ], [ 30, 40 ] ] ]
    ); #=> 'GEOMETRYCOLLECTION(POINT(10 20), LINESTRING(10 20, 30 40))'



    # If you don't like too many exported symbols:
    use Geo::WKT::Simple qw/ wkt_parse wkt_make /;
    wkt_parse(POINT => 'POINT(10 20)');
    wkt_make(POINT => [ 10, 20 ]);

# DESCRIPTION

Geo::WKT::Simple is a module to provide simple parser for Well Known Text(WKT) format string.

This module can parse WKT format string into pure perl data structure.

## Why not [Geo::WKT](http://search.cpan.org/perldoc?Geo::WKT) ?

There is a few reasons.

- \- I just need simple return value represented by pure perl data structure.
Geo::WKT returns results as a Geo::\* instances which represents each type of geodetic components.
- \- [Geo::Proj4](http://search.cpan.org/perldoc?Geo::Proj4) dependencies. [Geo::Proj4](http://search.cpan.org/perldoc?Geo::Proj4) depends to libproj4
- \- I need to support MULTI(LINESTRING|POLYGON).

# FUNCTIONS

See SYNOPSIS section for usages.

## wkt\_parse\_point()

Parse WKT Point string.

## wkt\_parse\_linestring()

Parse WKT Linestring string.

## wkt\_parse\_multilinestring()

Parse WKT MultiLinestring string.

## wkt\_parse\_polygon()

Parse WKT Polygon string.

## wkt\_parse\_multipolygon()

Parse WKT MultiPolygon string.

## wkt\_parse\_geometrycollection()

Parse WKT GeometryCollection string.

## wkt\_parse()

Dispatch to parser which specified in first argument.

    wkt_parse(POINT => 'POINT(10 20)') is equivalent to wkt_parse_point('POINT(10 20)')

## wkt\_make\_point()

Build WKT Point string.

## wkt\_make\_linestring()

Build WKT Linestring string.

## wkt\_make\_multilinestring()

Build WKT MultiLinestring string.

## wkt\_make\_polygon()

Build WKT Polygon string.

## wkt\_make\_multipolygon()

Build WKT MultiPolygon string.

## wkt\_make\_geometrycollection()

Build WKT GeometryCollection string.

## wkt\_make()

Dispatch to builder function which specified in first argument.

    wkt_make(POINT => [ 10, 20 ]) is equivalent to wkt_make_point(10, 20)

# AUTHOR

Yuto KAWAMURA(kawamuray) <kawamuray.dadada {at} gmail.com>

# SEE ALSO

[Geo::WKT](http://search.cpan.org/perldoc?Geo::WKT): As same as this module except few things.

Well-known text: http://en.wikipedia.org/wiki/Well-known\_text

# LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
