Convert GPX/FIT to GeoJSON at upload time, not first view
GpxStore#save now calls geojson() itself right after writing the file, so the (potentially tens-of-seconds, for a large POI export) conversion cost is paid during the upload — covered by the frontend's existing "Uploading…" status — instead of on whichever checkbox toggle happens to be first, which otherwise reads as a silent hang indistinguishable from broken. An unparseable file still saves fine; the error just surfaces on first view same as before.
This commit is contained in:
1 parent
96065b1237
commit
dd272ffb8a
3 files changed
+34
-8
No files matched your search
@@ -269,8 +269,14 @@ know which format it got. `GpxStore#geojson` caches that conversion
|
||||
alongside the source file (`<path>.geojson`, invalidated by mtime) —
|
||||
REXML parsing a several-thousand-waypoint POI export (a park4night
|
||||
area export, say) can take tens of seconds, and without a cache that
|
||||
cost repeats on every single toggle rather than just the first one
|
||||
after a save. `Gpx` parses the GPX with REXML: `<wpt>`
|
||||
cost repeats on every single toggle. `GpxStore#save` also calls
|
||||
`geojson` itself right after writing the file, so that cost is paid
|
||||
once during the upload (covered by the frontend's own "Uploading…"
|
||||
status) instead of on whichever toggle happens to be first — a silent
|
||||
multi-second hang on a checkbox click reads as broken in a way the
|
||||
same wait during an upload doesn't. A file that fails to parse still
|
||||
saves fine either way; the error just surfaces on first view instead.
|
||||
`Gpx` parses the GPX with REXML: `<wpt>`
|
||||
waypoints become `Point` features (with `name`, `desc` and `time`
|
||||
carried through as properties), each `<trk>` becomes one
|
||||
`MultiLineString` feature (one line per `<trkseg>`), and each `<rte>`
|
||||
|
||||
Reference in new issue
Block a user