Location Standard
A universal way to describe places, coordinates, and geographic areas.
Point
The simplest location: a single coordinate with optional metadata.
{
$type: 'location',
$version: 1,
$kind: 'point',
$name: 'Stephansdom',
$lat: 48.20849,
$lng: 16.37308,
$altitude: 171,
$accuracy: 5,
$address: {
$street: 'Stephansplatz 3',
$city: 'Vienna',
$region: 'Vienna',
$postal: '1010',
$country: 'AT'
}
}
Area
A bounded region defined by a polygon of coordinates.
{
$type: 'location',
$version: 1,
$kind: 'area',
$name: 'Innere Stadt',
$boundary: [
{ $lat: 48.2140, $lng: 16.3555 },
{ $lat: 48.2140, $lng: 16.3850 },
{ $lat: 48.1990, $lng: 16.3850 },
{ $lat: 48.1990, $lng: 16.3555 }
]
}
Route
An ordered sequence of points forming a path.
{
$type: 'location',
$version: 1,
$kind: 'route',
$name: 'Morning Run',
$points: [
{ $lat: 48.2082, $lng: 16.3738, $timestamp: '2026-03-29 06:30:00' },
{ $lat: 48.2095, $lng: 16.3755, $timestamp: '2026-03-29 06:32:14' },
{ $lat: 48.2110, $lng: 16.3800, $timestamp: '2026-03-29 06:35:47' }
],
$distance: 2450,
$duration: 720
}
Location Kinds
| $kind | Use case |
|---|---|
point |
Single coordinate (place, address, POI) |
area |
Bounded region (district, zone, property) |
route |
Ordered path (track, directions, journey) |
Standard Properties
| Property | Type | Required | Description |
|---|---|---|---|
$type |
string | yes | Always 'location' |
$version |
number | yes | Standard version |
$kind |
string | yes | point, area, or route |
$name |
string | no | Human-readable name |
$lat |
number | yes* | Latitude (WGS84) |
$lng |
number | yes* | Longitude (WGS84) |
$altitude |
number | no | Meters above sea level |
$accuracy |
number | no | Accuracy radius in meters |
$timestamp |
string | no | UTC datetime for this point |
$address |
object | no | Structured address |
$boundary |
array | yes* | Polygon coordinates for area |
$points |
array | yes* | Ordered coordinates for route |
$distance |
number | no | Total distance in meters |
$duration |
number | no | Total duration in seconds |
* Required depends on $kind: point needs $lat/$lng, area needs $boundary, route needs $points.
Address Properties
| Property | Type | Description |
|---|---|---|
$street |
string | Street name and number |
$city |
string | City or locality |
$region |
string | State, province, or region |
$postal |
string | Postal/ZIP code |
$country |
string | ISO 3166-1 alpha-2 country code |