longitude-one / wkt-parser
Parser for well-known text (WKT) object strings
Installs: 241 473
Dependents: 1
Suggesters: 0
Security: 0
Stars: 7
Watchers: 1
Forks: 6
Open Issues: 2
README
Lexer and parser library for 2D, 3D, and 4D WKT/EWKT spatial object strings.
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 containZ
,M
, orZM
for the respective 3D and 4D objects,null
otherwise.
Exceptions
The Lexer
and Parser
will throw exceptions implementing interface LongitudeOne\Geo\WKT\Exception\ExceptionInterface
.