TITLE
Geom::WellKnownText
The Geo::WellKnownText
module contains a single function:
from-wkt
from-wkt
takes a single Str
parameter, and returns a single Geo::Geometry
object corresponding to the wkt specification, or a Failure
if the contents of the string cannot be interpreted as a Geometry object.
The conversion is case-insensitive, and optional whitespace may be included in various places. Thus the following strings will all produce the same object:
PointZ(123 456 789)
Point Z (123 456 789)
Point Z(123 456 789)
pointz (123 456 789)
Geo::WellKnownText::Grammar
The Geo::WellKnownText::Grammar
module contains a single grammar Geo::WellKnownText::Grammar::WKT
.
This is the same grammar used by the Geo::WellKnownText
module, but it can be used separately to parse WKT strings.
The general usage would be
my $results = Geo::WellKnownText::Grammar::WKT.parse($string, actions => My::Actions);
The actions used by Geo::WellKnownText::from-wkt
are available in Geo::WellKnownText::WKT-Actions
, but in that case you might as well use from-wkt
described above.
The actions class will need to include the following methods (36 in total):
Geometry type | Method | Available Parameters |
---|
Point[Z][M] | point[z][m] | $<value> — an array containing the values for x, y, z and m as appropriate |
LineString[Z][M] | linestring[z][m]-text | $<point[z][m]> — an array of whatever the relevant point method passed to make. |
LinearRing[Z][M] | linearring[z][m]-text | $<point[z][m]> — and array of whatever the relevant point method passed to make. |
Polygon[Z][M] | polygon[z][m]-text | $<linearring[z][m]-text — an array of whatever the appropriate linearring-text method passed to make. |
PolyhedralSurface[Z][M] | polyhedralsurface[z][m]-text | $<polygon[z][m]-text — an array of whatever the appropriate polygon-text method passed to make. |
MultiPoint[Z][M] | multipoint[z][m]-text | $<point[z][m]> — an array of whatever the relevant point method passed to make. |
MultiLineString[Z][M] | multilinestring[z][m]-text | $<linestring[z][m]-text> — an array of whatever the relevant linestring-text method passed to make. |
MultiPolygon[Z][M] | multipolygon[z][m]-text | $<polygon[z][m]-text — an array of whatever the appropriate polygon-text method passed to make. |
GeometryCollection[Z][M] | geometrycollection[z][m]-tagged-text | $<geometry[z][m]-tagged-text> — an array of whatever the relevant geometry-text method passed to make. |