krasilnikov-spb / php-rdp
此包的最新版本(0.3.0)没有可用的许可证信息。
PHP 实现的 Ramer-Douglas-Peucker 算法,用于减少折线上的点数
0.3.0
2020-05-29 08:17 UTC
Requires
- php: ^7.1
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-29 05:09:07 UTC
README
PHP 实现的 Ramer-Douglas-Peucker 算法,用于减少折线上的点数
安装
composer install
测试
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/TestSimplify
用法
$track = [
[
"point" => ["lat" => 11.11, "lon" => 12.12],
"other_data" => [...]
],
....
];
$rdp = new \phpRdp\phpRdp("point.lat", "point.lon", 0.001, "km");
$simplified_track = $rdp->RamerDouglasPeucker($track);
您可以在 tests/TestSimplify.php 中查看工作示例。
过滤器
如果您需要在某个时间段内保留某些点,可以使用 setDatetimeFilter。
此行启用过滤器并将轨迹上点之间的最大距离设置为 20 分钟。
$rdp->setDatetimeFilter("datetime", 20 * 60);
作者
基于 David R. Edgar 的代码: http://www.loughrigg.org/rdp/
由 Alexander Krasilnikov 开发 alexander@krasilnikov.spb.ru