nasumilu / geometry
This package is abandoned and no longer maintained.
No replacement package was suggested.
Component provides the basic geometry classes used in Geographical Information Systems (GIS).
v2.0.0
2024-12-23 23:14 UTC
Requires
- php: >=7.4 | 8.0
- doctrine/lexer: ^3.0.0
- symfony/serializer: ^7.0
Requires (Dev)
- phpunit/phpunit: 9.5.3
README
Description
nasumilu\geometry
mostly provides an implementation of the OpenGISĀ® standards for geographic information, common architecture for PHP.
This component only provides a common framework used to develop platform specific implementation.
Basic usage
$options = [ '3d' => true, 'measured' => true, 'srid' => 3857 ]; $factory = new GeometryFactoryAdapter($options); $point = $factory->createPoint([ -93957413244860, -89692863500304, 58.464, 9863321.35 ]); echo $point->asText(); echo $point->asBinary(['hex_str' => true, 'endianness' => 'XDR']);
Output
POINTZM(-93957413244860 -89692863500304 58.464 9863321.35) 0000000bb9c2d55d0a8f63ef00c2d464cfd1240400404d3b645a1cac084162d0132b333333
Creating geometry from WKT
$point = $factory->create('POINTZM(-93957413244860 -89692863500304 58.464 9863321.35)'); echo $point->output('json', ['json_encode_options' => \JSON_PRETTY_PRINT]);
Output
{ "type": "point", "binary_type": 1, "crs": { "srid": 3857, "3d": true, "measured": true, "dimension": 4 }, "coordinates": [ -93957413244860, -89692863500304, 58.464, 9863321.35 ] }
Download and Test
$ git clone git@github.com:nasumilu/geometry.git
$ cd geometry
$ composer update
$ cp phpunit.dist.xml phpunit.xml
$ vendor/bin/phpunit