# app.kalangitan.location.snapshot

> Published by [iamtheno.name](https://lexicon.garden/identity/did:plc:2aalhpujw6kqsvraztyqlngu)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:2aalhpujw6kqsvraztyqlngu/app.kalangitan.location.snapshot)
- [Documentation](https://lexicon.garden/lexicon/did:plc:2aalhpujw6kqsvraztyqlngu/app.kalangitan.location.snapshot/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:2aalhpujw6kqsvraztyqlngu/app.kalangitan.location.snapshot/examples)

## Definitions

### `app.kalangitan.location.snapshot#geo`

**Type**: `object`

Shared location shape, referenced by feed.post, feed.note, feed.story, and location.snapshot. Coordinates must already be coarsened to the persona's configured precision before the record is written. The precision field records which level was applied.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `label` | `string` | No | Optional human-readable place name. |
| `latitude` | `integer` | Yes | Latitude in E7 microdegrees (degrees x 10^7), i.e. 145995000 = 14.5995N. The atproto data model has no float type, so coordinates are signed fixed-point integers. |
| `longitude` | `integer` | Yes | Longitude in E7 microdegrees (degrees x 10^7). |
| `precision` | `string` | Yes | exact: precise point. neighborhood: coarsened to ~1km. city: coarsened to city centroid/extent. |

### `app.kalangitan.location.snapshot`

**Type**: `record`

A discrete "here's where I was" location record. A snapshot, like any other post. Contrast with app.kalangitan.location.live, which is a single continuously-overwritten record. Belongs to a persona via profileUri; the persona's location.visibility defaults govern whether snapshots are recorded at all and at what precision.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `capturedAt` | `string` (datetime) | Yes | When the location was actually captured by the device. |
| `createdAt` | `string` (datetime) | Yes |  |
| `geo` | `ref` → `app.kalangitan.location.snapshot#geo` | Yes |  |
| `profileUri` | `string` (at-uri) | Yes | AT-URI of the app.kalangitan.actor.profile record this snapshot belongs to. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "geo": {
      "description": "Shared location shape, referenced by feed.post, feed.note, feed.story, and location.snapshot. Coordinates must already be coarsened to the persona's configured precision before the record is written. The precision field records which level was applied.",
      "properties": {
        "label": {
          "description": "Optional human-readable place name.",
          "maxGraphemes": 256,
          "maxLength": 256,
          "type": "string"
        },
        "latitude": {
          "description": "Latitude in E7 microdegrees (degrees x 10^7), i.e. 145995000 = 14.5995N. The atproto data model has no float type, so coordinates are signed fixed-point integers.",
          "maximum": 900000000,
          "minimum": -900000000,
          "type": "integer"
        },
        "longitude": {
          "description": "Longitude in E7 microdegrees (degrees x 10^7).",
          "maximum": 1800000000,
          "minimum": -1800000000,
          "type": "integer"
        },
        "precision": {
          "description": "exact: precise point. neighborhood: coarsened to ~1km. city: coarsened to city centroid/extent.",
          "knownValues": [
            "exact",
            "neighborhood",
            "city"
          ],
          "type": "string"
        }
      },
      "required": [
        "latitude",
        "longitude",
        "precision"
      ],
      "type": "object"
    },
    "main": {
      "description": "A discrete \"here's where I was\" location record. A snapshot, like any other post. Contrast with app.kalangitan.location.live, which is a single continuously-overwritten record. Belongs to a persona via profileUri; the persona's location.visibility defaults govern whether snapshots are recorded at all and at what precision.",
      "key": "tid",
      "record": {
        "properties": {
          "capturedAt": {
            "description": "When the location was actually captured by the device.",
            "format": "datetime",
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "geo": {
            "ref": "app.kalangitan.location.snapshot#geo",
            "type": "ref"
          },
          "profileUri": {
            "description": "AT-URI of the app.kalangitan.actor.profile record this snapshot belongs to.",
            "format": "at-uri",
            "type": "string"
          }
        },
        "required": [
          "profileUri",
          "geo",
          "capturedAt",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "app.kalangitan.location.snapshot",
  "lexicon": 1
}
```
