geofeatures
geofeatures copied to clipboard
A lightweight, high performance geometry library.
Note: GeoFeatures is currently being rewritten in pure Swift. This project will continue to be maintained until the production release of the Swift version.
Please see https://github.com/tonystone/geofeatures2 for the Swift rewrite.
GeoFeatures 
Introduction
GeoFeatures is a lightweight, high performance geometry library for Objective-C. It supports the full set of geometric primitives such as Point, Polygon, and LineString as well as collection classes such as MultiPoint, MultiPolygon,and MultiLineString.

Features
- [x] Easy to use.
- [x] Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, Box and GeometryCollection implementations.
- [x] Area, Length, BoundingBox, Centroid, Perimeter, Intersects, Intersection, Difference, Union, and Within (point in polygon) algorithms. More coming soon.
- [x] Immutable and mutable versions of all classes (e.g.
GFPolygonandGFMutablePolygon). - [x] WKT (Well-Known-Text) input and output.
- [x] GeoJSON input and output.
- [x] MapKit representations and drawing.
- [x] Indexed Subscripting support for all collection types (e.g.
GEPoint * point = multiPoint[0]). - [x] Swift: supports direct use in Swift applications.
- [x] CocoaPod framework support (compile as Objective-C framework or static lib).
- [x] Open Sourced under the the Apache License, Version 2.0.
- [x] Comprehensive doxygen documentation of the library available at github.io.
- [x] Implemented based on the popular and fast open source C++ boost geometry library.
Documentation
The doxygen documentation is online available at github.io.
Sources and Binaries
You can find the latest sources and binaries on github.
Communication and Contributions
- If you found a bug, and can provide steps to reliably reproduce it, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute
- Fork it! GeoFeatures repository
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :-)
Installation
GeoFeatures is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "GeoFeatures"
See the "Using CocoaPods" guide for more information.
Minimum Requirements
Build Environment
| Platform | Xcode |
|---|---|
| OSX | 10.1 |
Minimum Runtime Version
| iOS | OS X |
|---|---|
| 8.0 | 10.10 |
Author
Tony Stone (https://github.com/tonystone)
License
GeoFeatures is released under the Apache License, Version 2.0
The embedded Boost library is released under the Boost Software License, Version 1.0