prezent / phpwktadapter
使用这个简单的WKT PHP适配器库,可以将2D、3D和4D WKT(Well Known Text)/ EWKT(Extended Well-Known Text)对象字符串解析为几何对象。
v1.1.0
2023-08-16 11:45 UTC
Requires
- php: >=7.0
- doctrine/lexer: ^1.0|^2.0
Requires (Dev)
- phpunit/phpunit: ^8.2
This package is auto-updated.
Last update: 2024-09-16 14:58:38 UTC
README
已知的文本(WKT)是一种用于在地图上表示矢量几何对象、空间对象的参考系统以及空间参考系统之间转换的文本标记语言。
EWKT(Extended Well-Known Text),一种PostGIS特定的格式,包括空间参考系统标识符(SRID)和最多4个坐标值(XYZM),也得到支持(例如:SRID=31370;POINT(44 60)
)。
PHPWKTParser
提供了一个简单的使用助手类来读取WKT和EWKT,并将这种文本表示解析为包含解析后的WKT/EWKT定义的工作PHP数组。使用这个简单的WKT PHP适配器库将2D、3D和4D WKT(Well Known Text)/ EWKT(Extended Well-Known Text)对象字符串解析为几何对象。
安装
通过 composer 安装该包
composer require daandesmedt/phpwktadapter
确保在代码库的某个地方包含 composer 自动加载器。
支持的几何形状
PHPWKTParser解析并返回的几何数组响应
PHPWKTParser
适配器的 read($wkt)
函数将返回一个关联数组,作为解析后的WKT/EWKT(在有效的情况下)的表示。
array(
// the geometry object type
"type" => string,
// integer or float values for POINT - nested array (integer or float) for other geometry types
"value" => array,
// integer representing the EWKT SRID, null when not present
"srid" => integer | null,
// string (Z, M or ZM) representing the dimension, null when not present
"dimension" => string | null
)
工作示例
工作示例可以在 examples
文件夹中找到。
示例用法
<?php
require __DIR__ . '/../vendor/autoload.php';
use daandesmedt\PHPWKTAdapter\WKTAdapter;
$adapter = new WKTAdapter();
$res = $adapter->read('SRID=31370;POINT(30 10)');
var_dump($res);
处理异常
指定的WKT / EWKT中的无效格式将导致 WKTAdapter
抛出 UnexpectedValueException
。
<?php
require __DIR__ . '/../vendor/autoload.php';
use daandesmedt\PHPWKTAdapter\WKTAdapter;
$adapter = new WKTAdapter();
try {
$res = $adapter->read('SRID=31370;POINT(bad format)');
} catch (UnexpectedValueException $e) {
var_dump($e->getMessage());
}