Class: GpxDoctor::GeoJsonBuilder
- Inherits:
-
Object
- Object
- GpxDoctor::GeoJsonBuilder
- Defined in:
- lib/gpx_doctor/geojson_builder.rb
Overview
Builds GeoJSON output from parsed GPX data according to RFC 7946.
RFC 7946 compliance:
-
Coordinate order: [longitude, latitude, elevation]
-
LineString geometries require minimum 2 positions
-
MultiLineString segments require minimum 2 positions each
-
Empty or invalid geometries are filtered out
-
Properties member is null when no properties exist
Class Method Summary collapse
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(result) ⇒ GeoJsonBuilder
constructor
A new instance of GeoJsonBuilder.
Constructor Details
#initialize(result) ⇒ GeoJsonBuilder
Returns a new instance of GeoJsonBuilder.
27 28 29 |
# File 'lib/gpx_doctor/geojson_builder.rb', line 27 def initialize(result) @result = result end |
Class Method Details
.build(result) ⇒ Object
16 17 18 |
# File 'lib/gpx_doctor/geojson_builder.rb', line 16 def build(result) new(result).build end |
.build_file(result, file_path) ⇒ Object
20 21 22 23 24 |
# File 'lib/gpx_doctor/geojson_builder.rb', line 20 def build_file(result, file_path) json = build(result) File.write(file_path, json) json end |
Instance Method Details
#build ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/gpx_doctor/geojson_builder.rb', line 31 def build features = [] features.concat(waypoint_features) features.concat(route_features) features.concat(track_features) JSON.generate( type: 'FeatureCollection', features: features ) end |