Skip to content

A lightweight, high performance geometry library.

License

Apache-2.0, BSL-1.0 licenses found

Licenses found

Apache-2.0
LICENSE
BSL-1.0
LICENSE_BOOST_1_0
Notifications You must be signed in to change notification settings

tonystone/geofeatures

Repository files navigation

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 license: Apache 2.0

Platforms: iOS | macOS Version Build Status Codecov Downloads

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

Features

  • Easy to use.
  • Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, Box and GeometryCollection implementations.
  • Area, Length, BoundingBox, Centroid, Perimeter, Intersects, Intersection, Difference, Union, and Within (point in polygon) algorithms. More coming soon.
  • Immutable and mutable versions of all classes (e.g. GFPolygon and GFMutablePolygon).
  • WKT (Well-Known-Text) input and output.
  • GeoJSON input and output.
  • MapKit representations and drawing.
  • Indexed Subscripting support for all collection types (e.g. GEPoint * point = multiPoint[0]).
  • Swift: supports direct use in Swift applications.
  • CocoaPod framework support (compile as Objective-C framework or static lib).
  • Open Sourced under the the Apache License, Version 2.0.
  • Comprehensive doxygen documentation of the library available at github.io.
  • 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