agencelimitless/wkt-parser

Parser for well-known text (WKT) object strings

3.0.0 2019-08-02 11:39 UTC

This package is auto-updated.

Last update: 2024-03-29 04:17:14 UTC


README

Code Climate Test Coverage Build Status

Lexer and parser library for 2D, 3D, and 4D WKT/EWKT spatial object strings.

Usage

There are two use patterns for the parser. The value to be parsed can be passed into the constructor, then parse() called on the returned Parser object:

$input = 'POLYGON((0 0,10 0,10 10,0 10,0 0))';

$parser = new Parser($input);

$value = $parser->parse();

If many values need to be parsed, a single Parser instance can be used:

$input1 = 'POLYGON((0 0,10 0,10 10,0 10,0 0))';
$input2 = 'POINT(0,0)';

$parser = new Parser();

$value1 = $parser->parse($input1);
$value2 = $parser->parse($input2);

Return

The parser will return an array with the keys type, value, srid, and dimension.

  • type string, the spatial object type (POINT, LINESTRING, etc.) without any dimension.
  • value array, contains integer or float values for points, or nested arrays containing these based on spatial object type.
  • srid integer, the SRID if EWKT value was parsed, null otherwise.
  • dimension string, will contain Z, M, or ZM for the respective 3D and 4D objects, null otherwise.

Exceptions

The Lexer and Parser will throw exceptions implementing interface CrEOF\Geo\WKT\Exception\ExceptionInterface.