Find files, editable templates and browser test targets by what you need to make or test. The directory below is cut by format; the two collections under it cut the same library by subject and by workflow.
The same transect with its eastern end written as 180.3 rather than the normalised -179.7. Producers that accumulate longitudes across the antimeridian emit this constantly; RFC 7946 restricts longitude to -180..180, so a strict reader must reject or normalise it.
All seven RFC 7946 geometry types in a single FeatureCollection. Formats with a single-geometry-type-per-layer model (shapefile, most database tables) cannot hold this in one layer, so it is the fixture that reveals how a converter splits or refuses it.
Four features whose labels are written in Latin with diacritics, katakana, right-to-left Arabic, and a decomposed combining sequence: all stored as raw UTF-8 rather than \u escapes. Shapefile DBF export is where these usually turn into question marks.
One feature with `"properties": {}`, one with `"properties": null` and one fully populated. Both empty forms are legal, and attribute-table writers routinely fall over on the null form when they try to enumerate its keys.
The same five towns keyed by numeric ids. RFC 7946 allows an id to be either a string or a number, and code that assumes one type breaks on the other, usually by stringifying 1 into "1" and then failing to match on a later join.
Three points at exactly plus or minus 90 degrees latitude, two of which are the same physical place written with different longitudes. Web Mercator cannot represent either pole (latitude 90 projects to infinity), so this is the fixture that catches divide-by-zero and NaN in a reprojection path.
A ring that encloses the north pole by running along 85 N and closing across the top of the graticule. Planar area and centroid routines return meaningless answers here, and many renderers draw a rectangle rather than a cap.
A rectangle whose east edge is at 179.7 W and west edge at 179.6 E. Read literally in planar coordinates it wraps the entire globe and inverts the inside/outside test, so point-in-polygon queries return the exact opposite of the truth.
One Feature at the top level, with properties and an id but no enclosing collection: the shape a single-record API response takes. Pair it with the bare-geometry fixture to find readers that only handle one of the three legal root types.
Five features whose `id` is a string and sits on the Feature itself rather than inside `properties`: the placement RFC 7946 specifies and the one most CSV-shaped importers get wrong by flattening it into an attribute.
Four positions with a third element, which RFC 7946 defines as height in metres above the WGS 84 ellipsoid. Two-dimensional pipelines commonly truncate the third element without saying so, and this file is what proves whether yours does.
A GeoPackage holding an `attributes` table with no geometry at all: the standard's own answer to a lookup table you want to ship alongside your layers. Its gpkg_contents row has null bounds and a null SRS, which is what readers that assume every row is spatial trip over.
The same five towns stored as projected metres rather than degrees, with EPSG:3857 registered in gpkg_spatial_ref_sys and stamped into every geometry blob's header. Unlike GeoJSON, GeoPackage genuinely supports this, so it is the clean way to test that your reader honours the declared SRS instead of assuming 4326.
The territory as an OGC GeoPackage: an ordinary SQLite database with the three required metadata tables and three feature layers whose geometry columns hold GeoPackage binary blobs. Unlike a shapefile it carries several geometry types, long column names and real typed columns in one file.
GML 2.1 packed coordinates into a single `gml:coordinates` string whose decimal, coordinate and tuple separators are all declared as attributes and can be anything. GML 3 replaced it with `gml:posList`, but WFS 1.0 servers still emit this, and a parser that assumes the default separators mis-reads any file that changes them.
The same five towns as the territory GML twin, but declared with the CRS84 URN instead of the EPSG one, which flips the axis order to longitude first. The two files are otherwise identical in structure, so together they isolate axis-order handling from everything else.
GML calls a multipolygon a MultiSurface and its parts surfaceMembers, and nests exterior and interior rings under named elements rather than relying on ring order. This feature holds the holed lake and a solid parcel in one geometry, which is the shape a WFS response usually takes.
The same eight trackpoints written to the GPX 1.0 schema. The two versions differ in namespace and in where document metadata lives (1.1 wraps it in a `metadata` element, 1.0 puts name, desc and time directly under `gpx`), which is exactly what a namespace-hardcoding reader gets wrong.
The same eight trackpoints written to the GPX 1.1 schema. The two versions differ in namespace and in where document metadata lives (1.1 wraps it in a `metadata` element, 1.0 puts name, desc and time directly under `gpx`), which is exactly what a namespace-hardcoding reader gets wrong.
Eight trackpoints each carrying a Garmin TrackPointExtension with heart rate, cadence and air temperature. The GPX schema deliberately leaves `extensions` open, so this is the fixture for checking that a reader surfaces vendor data instead of discarding it on export.
Seven trackpoints whose timestamps go forwards, backwards, and then repeat: the pattern a receiver produces after a clock correction or a buffered replay. Naive speed calculations divide by a negative or zero time delta and emit impossible values.
A `rte` element: an ordered list of waypoints describing a planned route, with no timestamps because it has not been travelled yet. Many importers only look for `trk` and report this perfectly valid file as empty.
The baseline GPS trace for this category: 24 timestamped, elevated trackpoints in a single segment, walking the Coast Road of the invented territory. Every other GPX fixture here is this file with one thing changed.
Five `wpt` elements for the towns of the territory, with names, symbols and descriptions but no track or route. It is the GPX equivalent of a point layer, and the third of the three top-level GPX content types.