Maps + GPS
Make Location Data Unambiguous
Build map and tracking interfaces that state coordinate order, units, accuracy, query semantics, time, and privacy rather than leaving clients to guess.
A map feature is a domain resource
A point, line, or polygon should belong to a stable resource with an ID, revision, attributes, source, and lifecycle. Geometry can change without changing identity. A building may also have a footprint, label point, entrances, height, and 3D asset reference, each with an explicit role.
Separate authoritative source geometry from display simplification. A lightweight viewport response can return reduced detail while a feature endpoint returns full geometry and provenance.
Coordinate order, reference systems, and units
Standard GeoJSON uses longitude, latitude order. Geographic degrees are not meters, and planar formulas do not produce reliable distance everywhere. State the reference system and transform to a suitable projected or local frame for calculations that require it.
If an API accepts local or projected coordinates, use a representation that names the frame and units. Never infer the coordinate system from numeric magnitude. Validate ranges and reject ambiguous inputs rather than accepting both orders heuristically.
Queries for real applications
Bounding box, radius, nearest, polygon intersection, route corridor, time range, and changed-after queries cover many applications. Document whether intersection means any overlap, centroid inside, or full containment. Define antimeridian behavior and maximum query extent.
Every response should state applied filters, sort, units, result count, truncation, and continuation cursor. Cursor pagination is more stable than offsets when features move or are added between requests.
Tracking and moving features
A live location needs observation time, accuracy, source, and freshness. Keep the current state separate from history and predictions. A route trail, sampled trajectory, map-matched path, and forecast are different products and should not share one ambiguous field.
For streams, define ordering, deduplication, replay, and reconnect behavior. Clients should know whether they receive every observation, the latest state, or a sampled summary.
Precision is not accuracy
Many decimal places can create false confidence. Include error radius, quality class, or other uncertainty from the source. The interface can show approximate location, ask for a better reading, or avoid a high-risk action when accuracy is inadequate.
Privacy may require reduced precision, aggregation, delay, or on-device filtering. Exact location should not flow into general analytics simply because it was available to one feature.
Versioning and publication
Bulk datasets benefit from staging, validation, immutable versions, and a current alias. Edits should carry source, reason, revision, and effective time when the domain requires history. Conditional writes prevent one client from overwriting a newer geometry.
Use immutable asset or tile URLs for long-lived caching. Publish a corrected version rather than silently changing a cached payload. Keep durable feature IDs stable across processing versions whenever the real-world identity has not changed.
Continue the field guide
Turn Spatial Data Into a Reliable Contract
Use the journal for implementation patterns, standards context, engine integration, and platform-specific design decisions.
Read the Spatial Systems Journal