creof / wkb-parser
解析二进制(WKB/EWKB)对象数据的解析器
v2.4
2022-02-15 22:46 UTC
Requires
- php: >=5.3.3
- ext-spl: *
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: >=4.8
- satooshi/php-coveralls: ~1.0
This package is auto-updated.
Last update: 2024-08-24 22:51:15 UTC
README
用于2D、3D和4D开放地理空间联盟(OGC)WKB或PostGIS EWKB空间对象数据的解析器库。
用法
解析器有两种使用模式。要解析的值可以传递给构造函数,然后对返回的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.....'
) - 带前缀的十六进制测试字符串(
x
、X
、0x
或0X
,例如:'0x01010000003D0AD7A3.....'
等)
返回值
解析器将返回一个包含键type
、value
、srid
和dimension
的数组。
type
字符串,没有维度的空间对象类型(例如:POINT
、LINESTRING
等)的大写形式。value
数组,包含点、基于空间对象类型的嵌套数组或空数组(对于EMPTY几何体)的整数或浮点值。srid
整数,如果EWKB值中存在,则为SRID,否则为null
。dimension
字符串,对于相应的3D和4D对象将包含Z
、M
或ZM
,否则为null
。
异常
Reader
和Parser
将抛出实现接口CrEOF\Geo\WKB\Exception\ExceptionInterface
的异常。
参考
- PostGIS EWKB - https://github.com/postgis/postgis/blob/svn-trunk/doc/ZMSgeoms.txt
- OGC简单特征访问,第1部分 - http://www.opengeospatial.org/standards/sfa
- OGC简单特征访问,第2部分 - http://www.opengeospatial.org/standards/sfs