Simplify-Swift
Simplify-Swift是从Simplify.js移植的高性能Swift折线简化库。原始的JavaScript库是从由Leaflet(Leaflet是一个由Vladimir Agafonkin开发的前端JS交互式地图库)提取出来的。它结合了Douglas-Peucker和径向距离算法。
折线简化显著减少了折线中的点数,同时保留其形状,在处理过程中提供了巨大的性能提升,并减少了视觉噪声。例如,在MapKit中渲染大型折线时,这是必需的。
示例
要运行示例项目,先从仓库中克隆,然后从Example目录中首先运行pod install
。
安装
CocoaPods
要使用CocoaPods将Simplify-Swift集成到您的Xcode项目中,请在Podfile中指定它。
pod 'Simplify-Swift'
Swift 包管理器 (SPM)
要使用 Apple 的 Swift 包管理器进行集成,请将以下内容添加到您的 Package.swift 作为依赖项
.package(url: "https://github.com/tomislav/Simplify-Swift.git", .upToNextMajor(from: "1.0.0"))
用法
class func simplify<T:SimplifyValue>(_ points: [T], tolerance: Float?, highQuality: Bool = false) -> [T]
返回简化点数组
- 参数
points
:点数组,格式为SimplifyValue {x: Double, y: Double}
。支持泛型,你可以传入[CGPoint]
或[CLLocationCoordinate2D]
类型的数组。 - 参数
tolerance
:影响简化的程度(与点坐标的度量相同)。默认:1。 - 参数
highQuality
:排除基于距离的预处理步骤,这会导致最高品质的简化,但运行速度慢 10-20 倍。默认:false。
作者
Tomislav Filipcic,[email protected],@tomislav
许可证
Simplify-Swift 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。