此包的最新版本(0.3.0)没有可用的许可证信息。

PHP 实现的 Ramer-Douglas-Peucker 算法,用于减少折线上的点数

0.3.0 2020-05-29 08:17 UTC

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