https://github.com/bayer-group/geospatialswift

Geospatial swift framework for GeoJson with geohashing, calculations, and much more

https://github.com/bayer-group/geospatialswift

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.6%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

Geospatial swift framework for GeoJson with geohashing, calculations, and much more

Basic Info
  • Host: GitHub
  • Owner: Bayer-Group
  • License: other
  • Language: Swift
  • Default Branch: main
  • Homepage:
  • Size: 193 KB
Statistics
  • Stars: 9
  • Watchers: 7
  • Forks: 2
  • Open Issues: 0
  • Releases: 9
Created about 8 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Contributing License

README.md

GeospatialSwift

Carthage Compatible Swift 5.1 Platforms

What is GeospatialSwift?

GeospatialSwift is an interface to translate a GeoJson document / dictionary into a swift object which fully conforms to the more recent GeoJson specification - August 2016.

A GeoJsonObject can be transformed to a bounding box.

Features

  • Unit tested with high coverage
  • Ongoing development

Installation

Carthage

github "MonsantoCo/GeospatialSwift" ~> 1.0.0

Package Manager

.package(url: "git@github.com:MonsantoCo/GeospatialSwift.git", from: "1.0.0")

Geospatial

Geospatial

  • The main interface consisting of 4 sub interface

GeoJson

Geospatial.geoJson

  • Full GeoJson specification support to create a GeoJsonObject
  • A GeoJsonObject is the base object of GeospatialSwift functionality
  • Bounding Box generated from any GeoJsonObject
  • GeoJson generated from any GeoJsonObject

GeoJsonObjects

  • Minimum distance to a given point (Optional error distance)
  • Contains a given point (Optional error distance)
  • Bounding box for any shape
  • GeoJson returned as a Dictionary
  • Coordinates array for the associated geometry
  • Line segments with midpoint and bearing functions

  • Point

    • Normalize
  • MultiPoint

  • LineString

    • Length
  • MultiLineString

    • Length
  • Polygon

    • Centroid
    • Area
  • MultiPolygon

    • Area
  • GeometryCollection

  • Feature

  • FeatureCollection

Geohash

Geospatial.geohash

  • Create a geohash from a coordinate or bounding box
  • Get geohash neighbors (8)
  • Create a bounding box for a geohash

WKT - Not Fully Supported

Geospatial.parse(wkt: String) -> GeoJsonObject

  • Minimal WKT parsing support which transforms to a GeoJsonObject.
  • POINT, LINESTRING, MULTILINESTRING, POLYGON, MULTPOLYGON.
  • This is currently only intended to parse a very simple WKT string

Running GeospatialSwift in XCode

  • Bootstrap Example: rm -rf *.xcodeproj || rm -rf .build || swift package resolve && swift package generate-xcodeproj && open *.xcodeproj
  • In the Target GeospatialSwift, select the tab Signing & Capabilities and check the box Automatically manage signing
  • In the scheme menu, select Edit Scheme..., select the Test item on the left, select the tab Options, and check the box Gather coverage for "all targets"
  • In the target GeospatialSwiftTests select the tab Build Phases and add a Run Script Phase with the body $PROJECT_DIR/Scripts/parrot.sh and move the item to the top of the Buld Phases just below Dependencies.
  • In the target GeospatialSwift select the tab Build Phases and add a Run Script Phase with the body $PROJECT_DIR/Scripts/swiftlint.sh.

Extending GeospatialSwift in XCode

Option 1: Run with the current XCode project as is

Option 2: Rebuild it using generate-xcodeproj

  • Setup: Package Manager Example: rm -rf *.xcodeproj || rm -rf .build || swift package resolve && swift package generate-xcodeproj && open *.xcodeproj
  • Building: In the Target GeospatialSwift, select the tab Signing & Capabilities and check the box Automatically manage signing
  • Code Coverage: In the scheme menu, select Edit Scheme..., select the Test item on the left, select the tab Options, and check the box Gather coverage for "all targets"
  • Mocking: In the target GeospatialSwiftTests select the tab Build Phases and add a Run Script Phase with the body $PROJECT_DIR/Scripts/parrot.sh and move the item to the top of the Buld Phases just below Dependencies.
  • Linting: In the target GeospatialSwift select the tab Build Phases and add a Run Script Phase with the body $PROJECT_DIR/Scripts/swiftlint.sh.

Owner

  • Name: Bayer Open Source
  • Login: Bayer-Group
  • Kind: organization

Science for a better life

GitHub Events

Total
  • Member event: 1
Last Year
  • Member event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 15
  • Total Committers: 4
  • Avg Commits per committer: 3.75
  • Development Distribution Score (DDS): 0.333
Past Year
  • Commits: 3
  • Committers: 2
  • Avg Commits per committer: 1.5
  • Development Distribution Score (DDS): 0.333
Top Committers
Name Email Commits
Vernon R Schierding III s****g@g****m 10
Nickola 1****v 2
Nickola Andriiev a****h@g****m 2
Nathan Schlechte n****e@g****m 1

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 12
  • Average time to close issues: N/A
  • Average time to close pull requests: about 13 hours
  • Total issue authors: 0
  • Total pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 hour
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • schlingding (8)
  • NickolaAndriiev (3)
  • mifanbing (1)
  • SchlNate (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

GeospatialSwift.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved swiftpm
  • github.com/GEOSwift/geos 8.1.0
Package.swift swiftpm