longitude-one/wkt-parser

Parser for well-known text (WKT) object strings

3.0.0.RC 2024-03-31 14:06 UTC

This package is auto-updated.

Last update: 2024-04-11 19:04:24 UTC


README

longitude-one/wkt-parser Stable release Packagist License

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

PHP CI Maintainability Test Coverage Minimum PHP Version

CI Downloads

Note

This package is the continuation of the now abandoned creof/wkt-parser package.

Installation

composer require longitude-one/wkt-parser

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 LongitudeOne\Geo\WKT\Exception\ExceptionInterface.