longitude-one/wkb-parser

解析已知的二进制(WKB/EWKB)对象数据解析器

3.0.0 2024-04-10 11:59 UTC

This package is auto-updated.

Last update: 2024-08-27 07:48:40 UTC


README

longitude-one/wkb-parser Stable release Packagist License

用于解析二维、三维和四维开放地理空间联盟(OGC)WKB或PostGIS EWKB空间对象数据的解析库。

PHP CI Maintainability Test Coverage Minimum PHP Version

CI Downloads

注意

本软件包是已废弃的creof/wkt-parser软件包的延续。

安装

composer require longitude-one/wkb-parser

用法

解析器有两种使用模式。要解析的值可以传递给构造函数,然后对返回的Parser对象调用parse()。

$parser = new Parser($input);

$value = $parser->parse();

如果需要解析许多值,可以使用单个Parser实例。

$parser = new Parser();

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

输入值

编码

解析器目前支持3种WKB编码

  • OGC v1.1
  • OGC v1.2
  • PostGIS EWKB

格式

解析器支持多种输入格式

  • 二进制字符串(从数据库返回或pack('H*', $hexString)
  • 纯十六进制文本字符串(例如'01010000003D0AD7A3.....'
  • 带前缀的十六进制测试字符串(例如'0x01010000003D0AD7A3.....'等)

返回

解析器将返回一个数组,其中包含键typevaluesriddimension

  • type字符串,不带维度的空间对象类型(如POINTLINESTRING等)的字符串。
  • value数组,包含点、基于空间对象类型的嵌套数组或空数组(对于EMPTY几何形状)的整数或浮点值。
  • srid整数,如果EWKB值中存在,则为SRID,否则为null
  • dimension字符串,对于相应的3D和4D对象,将包含ZMZM,否则为null

异常

ReaderParser将抛出实现接口CrEOF\Geo\WKB\Exception\ExceptionInterface的异常。

参考