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/builder for Well Known Text(WKT) format string.
This module can parse/build WKT format string into/from pure perl data structure.
Why not Geo::WKT ?
There is 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 dependencies. 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: 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.