diff --git a/Sources/Turf/GeoJSON.swift b/Sources/Turf/GeoJSON.swift index 0c40d31c..f9e99b0e 100644 --- a/Sources/Turf/GeoJSON.swift +++ b/Sources/Turf/GeoJSON.swift @@ -74,6 +74,10 @@ public protocol GeoJSONObjectConvertible { var geoJSONObject: GeoJSONObject { get } } +extension GeoJSONObject: GeoJSONObjectConvertible { + public var geoJSONObject: GeoJSONObject { return self } +} + extension Geometry: GeoJSONObjectConvertible { public var geoJSONObject: GeoJSONObject { return .geometry(self) } } diff --git a/Tests/TurfTests/GeoJSONTests.swift b/Tests/TurfTests/GeoJSONTests.swift index e65be3f1..e16e6aa4 100644 --- a/Tests/TurfTests/GeoJSONTests.swift +++ b/Tests/TurfTests/GeoJSONTests.swift @@ -23,11 +23,16 @@ class GeoJSONTests: XCTestCase { XCTAssertEqual(Geometry(GeometryCollection(geometries: [])), .geometryCollection(GeometryCollection(geometries: []))) + XCTAssertEqual(Geometry(Geometry(Geometry(Geometry(Point(nullIsland))))), .point(.init(nullIsland))) + XCTAssertEqual(GeoJSONObject(Geometry(Point(nullIsland))), .geometry(.point(.init(nullIsland)))) XCTAssertEqual(GeoJSONObject(Feature(geometry: nil)), .feature(.init(geometry: nil))) let nullGeometry: Geometry? = nil XCTAssertEqual(GeoJSONObject(Feature(geometry: nullGeometry)), .feature(.init(geometry: nil))) XCTAssertEqual(GeoJSONObject(FeatureCollection(features: [])), .featureCollection(.init(features: []))) + + XCTAssertEqual(GeoJSONObject(GeoJSONObject(GeoJSONObject(GeoJSONObject(Geometry(Point(nullIsland)))))), + .geometry(.point(.init(nullIsland)))) } func testPoint() {