Handy Orchard

GPX/KML to GeoJSON

Convert a local GPX or KML document to GeoJSON with bounded XML parsing and no linked-resource loading.

Your input

Choose one source explicitly; text mode ignores the file field, file mode ignores pasted text.

One nonempty UTF-8 XML file up to 2 MiB. Compressed archives are unsupported.

Outputs are cleared when the input changes.

Result

Enter your data or use the example, then run the tool.

Worked example

The generated GPX sample contains a two-point track near Taipei with elevation and timestamps. It becomes one LineString feature with GeoJSON longitude,latitude coordinates; no map is requested.

Method

Reject DTD/entity declarations before parsing. A pinned xmldom DOMParser supplies a bounded XML DOM inside a terminable worker; the exact Mapbox togeojson.gpx/kml source converts supported nodes. Count features/types/positions and warn about ignored NetworkLinks.

Limits

XML up to 2 MiB UTF-8 and 50000 nodes/attributes. Geometry up to 20000 positions, 5000 features and 1000 segments per polygon ring. DTD/entities, compressed files and projected/invalid coordinates are rejected. External icons, NetworkLinks and maps are never fetched; unsupported styles/extensions may be lost. Uncut antimeridian polygon rings must be split first.

Processing stays local in a fixed-source, lazily loaded worker. Cancel and the four-second worker timeout terminate processing.

Sources

Pinned upstream READMEExact upstream licenseThird-party notices

Related tools

GPS coordinate notation converterPlus Code encoderGeoJSON geodesic measurementEncoded polyline converter

Your inputs stay on this device. Only optional, consented page visits are measured. Input values, files, filenames and processing logs are not sent to Analytics.

When switching languages, text, settings and selected files are temporarily kept on this device. Transfers are removed after restoring; interrupted transfers are cleaned up on a later visit. Inputs and files are never uploaded.