Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tonystone/geofeatures
A lightweight, high performance geometry library.
https://github.com/tonystone/geofeatures
boost cocoapods doxygen-documentation geojson geometry geometrycollection high-performance intersection ios linestring multilinestring multipolygon objective-c osx parser polygon swift wkt
Last synced: about 2 months ago
JSON representation
A lightweight, high performance geometry library.
- Host: GitHub
- URL: https://github.com/tonystone/geofeatures
- Owner: tonystone
- License: apache-2.0
- Created: 2015-08-23T02:35:40.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2019-03-17T01:39:05.000Z (almost 6 years ago)
- Last Synced: 2024-10-13T14:27:29.056Z (2 months ago)
- Topics: boost, cocoapods, doxygen-documentation, geojson, geometry, geometrycollection, high-performance, intersection, ios, linestring, multilinestring, multipolygon, objective-c, osx, parser, polygon, swift, wkt
- Language: C++
- Homepage:
- Size: 36.3 MB
- Stars: 26
- Watchers: 7
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
> **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](https://github.com/tonystone/geofeatures2) for the Swift rewrite.# GeoFeatures ![license: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-lightgray.svg?style=flat)
## 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.![Inheritance Diagram](Documentation/GeoFeatures-Inheritance-Diagram.png)
## 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. `GFPolygon` and `GFMutablePolygon`).
- [x] [WKT (Well-Known-Text)](https://en.wikipedia.org/wiki/Well-known_text) input and output.
- [x] [GeoJSON](http://geojson.org/) 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](http://www.apache.org/licenses/LICENSE-2.0.html).
- [x] Comprehensive doxygen documentation of the library available at [github.io](http://tonystone.github.io/geofeatures).
- [x] Implemented based on the popular and fast open source C++ boost geometry library.
## DocumentationThe doxygen documentation is online available at [github.io](http://tonystone.github.io/geofeatures).
## Sources and Binaries
You can find the latest sources and binaries on [github](https://github.com/tonystone/geofeatures).
## Communication and Contributions
- If you **found a bug**, _and can provide steps to reliably reproduce it_, [open an issue](https://github.com/tonystone/geofeatures/issues).
- If you **have a feature request**, [open an issue](https://github.com/tonystone/geofeatures/issues).
- If you **want to contribute**
- Fork it! [GeoFeatures repository](https://github.com/tonystone/geofeatures)
- 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](http://cocoapods.org). To install
it, simply add the following line to your Podfile:```ruby
pod "GeoFeatures"
```See the ["Using CocoaPods"](https://guides.cocoapods.org/using/using-cocoapods.html) 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](https://github.com/tonystone))
## License
GeoFeatures is released under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
The embedded Boost library is released under the [Boost Software License, Version 1.0](http://www.boost.org/users/license.html)