kiliankoe/geojson
This is a Swift package for working with [GeoJSON](https://geojson.org) data. It contains necessary types conforming to `Codable` for easy de-/encoding of data.
Usage
You can give this package a quick spin by cloning the repository and running swift run --repl inside it.
Encoding
Create a FeatureCollection or just a single Feature to create some GeoJSON data.
let features = FeatureCollection(features: [
Feature(
geometry: .point(Point(longitude: 125.6, latitude: 10.1)),
properties: [
"name": "Dinagat Island"
]
)
])
let json = try JSONEncoder().encode(features)Decoding
It works the same way in the other direction. Use a standard JSONDecoder to decode GeoJSON data into a fitting type.
let features = try JSONDecoder().decode(FeatureCollection.self, from: json)If you don't know if the data to decode is a Feature or FeatureCollection, decode a value of type GeoJSONDocument, which handles both.
let document = try JSONDecoder().decode(GeoJSONDocument.self, from: json)
switch document {
case .feature(let feature):
// ...
case .featureCollection(let featureCollection):
// ...
}Installation
This package is available via Swift Package Manager, add its clone URL to your project to get started.
Package Metadata
Repository: kiliankoe/geojson
Default branch: main
README: README.md