★★ Star our github repository to help us! ★★
Polyline simplification dramatically reduces the number of points in a polyline while retaining its shape, giving a huge performance boost when processing it and also reducing visual noise. For example, it's essential when rendering a 70k-points line chart or a map route in the browser using MapKit.
You also may like
Do you like
SwiftRichString? I'm also working on several other opensource libraries.
Take a look here:
- SwiftDate - Full features Dates & TimeZone management for iOS,macOS,tvOS and watchOS
- Hydra - Promise, Async/Await on sterioids!
- SwiftLocation - CoreLocation and Beacon Monitoring on steroid!
- SwiftScanner - String scanner in pure Swift with full unicode support
- SwiftSimplify - Tiny high-performance Swift Polyline Simplification Library
- SwiftMsgPack - MsgPack Encoder/Decoder in Swit
- iOS 8.0+ / Mac OS X 10.10+
- Xcode 8.0
- Swift 3.0
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
SwiftSimplify is available through CocoaPods. To install it, simply add the following line to your Podfile:
Usage is pretty straightforward: in fact you need just call the SwiftSimplify's class method simplify by passing your configuration. Allowed parameters are:
class func simplify<T>(points: [T], tolerance: Float?, highQuality: Bool = false) -> [T];
points: An array of points. SwiftSimplify supports Swift's generic so you can pass an array of CGPoint (
[CGPoint]) or array of CLLocationCoordinate2D (
tolerance: (1 by default) Affects the amount of simplification (in the same metric as the point coordinates)
highQuality: (false by default) Excludes distance-based preprocessing step which leads to highest quality simplification but runs ~10-20 times slower.
SwiftSimplify is available under the MIT license. See the LICENSE file for more info.