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

This package is auto-updated.

Last update: 2025-01-24 01:41:22 UTC


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