Authentication
Your account is assigned an API key, which must be sent as a key query string parameter in all requests to the API.
To view your API key, sign-in to the interface and view your Account details in the top-right.
Layer Operations
Base URL: https://interface.geochron.com/api/layers
Create, modify, or destroy your custom layers.
POST: /create
Creates a new layer of given type and name.
NOTE: Only "Fixed" is currently accepted as a layer type.
Request
{
"Name": "My New Layer",
"Type": "Fixed"
}
| Name | Type | Description |
|---|---|---|
| Name | string | New Layer Name |
| Type | string | New Layer Type (Fixed) |
Response
{
"Name": "My New Layer",
"Type": "Fixed"
}
| Name | Type | Description |
|---|---|---|
| Name | string | New Layer Name |
| Type | string | New Layer Type (Fixed) |
GET: {id}/delete
Delete layer {id} immediately.
POST: /{id}/rename
Accepts a Rename Request with a new layer name and attempts to rename layer {id}.
Component Operations
Base URL: https://interface.geochron.com/api/layers/{layerID}/component/{componentName}
Create, modify, or destroy layer components.
Trigger life-cycle events for components
GET: /
Fetch raw component JSON configuration.
POST: /
Immediately set raw component JSON configuration.
POST: /update
Merge supplied POST body JSON object with existing raw component JSON configuration.
Request/Response
{
"Type": "Point",
"Label": "Test Point",
"Lat": 43,
"Lng": -122.0,
"Color": "#ffffff",
"Icon": null
}
{
"Lat": 43.0,
"Lng": -122.0
}
GET: /delete
Delete component immediately
POST: /rename
Accepts a Rename Request with a new component name and attempts to rename the component.
POST: /process
Accepts arbitrary binary POST data and triggers the processing phase of a component life-cycle.
Returns no response.
This is most useful for image components: Overlays, Legends, and Http types - the POST data is assumed to be a PNG image and is stored on the server, and the appropriate component parameters are updated immediately.
Component Structures
Components are represented as JSON objects with a mandatory Type key.
Point
{
"Type": "Point",
"Label": "My Point",
"Color": "#ffaa00",
"Lat": -43.2,
"Lng": -122.0,
"Icon": null
}
| Name | Type | Description |
|---|---|---|
| Type | string | Mandatory type name |
| Label | string | Text label, printed above and to the right of the point |
| Color | string | Hex color code |
| Lat | decimal | Latitude within expected ranges |
| Lng | decimal | Longitude within expected ranges |
| Icon | icon | Custom icon (optional) |
Path
{
"Type": "Path",
"Points": [
{ "Lat": -43.2, "Lng": -122.0 },
{ "Lat": -45.0, "Lng": -125.0 },
],
"Color": "#ffaa00"
}
| Name | Type | Description |
|---|---|---|
| Type | string | Mandatory type name |
| Points | lat-lng-list | List of points to draw the path along |
| Color | string | Hex color code |
Overlay
{
"Type": "Overlay",
"ImageURL": "http://storage.geochron.com/7d/7debe3be98c7fff3b6a68862a4ef1080bf69b53e274b8f9faefb141ca2b7cda5.png",
"ImageTime": 0,
"ImageHash": "7debe3be98c7fff3b6a68862a4ef1080bf69b53e274b8f9faefb141ca2b7cda5",
"Layer": "Over"
}
| Name | Type | Description |
|---|---|---|
| Type | string | Mandatory type name |
| ImageURL | url | URL to the image to use as an overlay |
| ImageTime | int | Last time the image was uploaded (or 0, if never or not applicable) |
| ImageHash | string | Content hash of the image (see hashing) |
| Layer | string | Location of the overlay relative to the shaded night portion of the map ("Over", "Under") |
Legend
{
"Type": "Legend",
"ImageURL": "http://storage.geochron.com/4c/4ce75bcd8bdc9765dfbd17c18d872f7c8049cb1101c537e0b652d075c5830d4a.png",
"ImageTime": 0,
"ImageHash": "4ce75bcd8bdc9765dfbd17c18d872f7c8049cb1101c537e0b652d075c5830d4a",
"Position": "Left"
}
| Name | Type | Description |
|---|---|---|
| Type | string | Mandatory type name |
| ImageURL | url | URL to the image to use as a legend |
| ImageTime | int | Last time the image was uploaded (or 0, if never or not applicable) |
| ImageHash | string | Content hash of the image (see hashing) |
| Position | string | Position of legend on device screen ("Left", "TopLeft", "Top", "TopRight", "Right", "BottomLeft", "BottomRight") |
Orbital
{
"Type": "Orbital",
"Label": "Intl. Space Station",
"Color": "#ffaa00",
"TLE1": "1 25544U 98067A 20220.82748236 .00001293 00000-0 31444-4 0 9991",
"TLE2": "2 25544 51.6459 92.8834 0000920 20.3968 59.5056 15.49153310240025",
"Icon": null
}
| Name | Type | Description |
|---|---|---|
| Type | string | Mandatory type name |
| Label | string | Text label, printed above and to the right of the satellite |
| Color | string | Hex color code |
| TLE1 | string | First line of a Two-Line Element (TLE) component |
| TLE2 | string | Second line of a Two-Line Element (TLE) component |
| Icon | icon | Custom icon (optional) |
Location
{
"Type": "Location",
"Label": "Oregon City",
"Color": "#ffaa00",
"LocType": "PostalCode",
"LocData": "97045"
}
| Name | Type | Description |
|---|---|---|
| Type | string | Mandatory type name |
| Label | string | Text label, printed above and to the right of the point |
| Color | string | Hex color code |
| LocType | string | Only "PostalCode" is supported currently. |
| LocData | string | Postal Code of desired location. |
HTTP
{
"Type": "Http",
"Purpose": "Overlay",
"FetchURL": "http://example.com/worker/fetch",
"RenderURL": "http://example.com/worker/render",
"Expiry": 3600,
"StaticConfig": {
"CustomRendererProperty": "CustomValue",
"Color": "#ffffff"
}
}
| Name | Type | Description |
|---|---|---|
| Type | string | Mandatory type name |
| Purpose | string | Either "Overlay" or "Legend" |
| FetchURL | url | URL of 'fetch' script to call to retreive component data |
| RenderURL | url | URL of 'render' script to call to begin the render process |
| Expiry | int | Time (in seconds) before the layer should be considered 'stale' |
| StaticConfig | string | JSON configuration to be passed to the render worker via the Config key. |
CSV
{
"Type": "Csv",
"Data": "Point,Test Point,45.0,-122.0,#ff0000
Location,PostalCode,97045,Oregon City,#ffaa00"
}
| Name | Type | Description |
|---|---|---|
| Type | string | Mandatory type name |
| Data | string | CSV-formatted components |
Special Structures
Special structures are used to represent certain component properties or certain data-types.
Icon
Used anywhere an icon is supported (Point, Orbital, Location). null is accepted instead of the icon structure if no icon is desired.
{
"IconURL": "http://storage.geochron.com/cb/cb1e315b2e99b417a1ac5ecead4c79f01d47eb455b23010747749a27d362edbc.png",
"IconHash": "cb1e315b2e99b417a1ac5ecead4c79f01d47eb455b23010747749a27d362edbc"
}
| Name | Type | Description |
|---|---|---|
| IconURL | url | URL to the image to use as an icon |
| IconHash | url | Content hash of the image |
Lat/Lng List
An unindexed, ordered array of lat/lng pairs.
{
"Points": [
{ "Lat": -43.2, "Lng": -122.0 },
{ "Lat": -45.0, "Lng": -125.0 },
]
}
| Name | Type | Description |
|---|---|---|
| Points | array of lat-lng | JSON array of lat/lng pairs |
Lat/Lng
Represents a pair of latitude & longitude values that resolve to a point.
{
"Lat": -43.2,
"Lng": -122.0
}
| Name | Type | Description |
|---|---|---|
| Lat | decimal | Latitude within expected ranges |
| Lng | decimal | Longitude within expected ranges |
Entity Rename Request
Sent to a rename REST endpoint to change the name of a layer or component.
{
"NewName": "My New Name"
}
| Name | Type | Description |
|---|---|---|
| NewName | string | New name of the layer or component |
Entity Rename Response
Received as a response to a command that renames a component or a layer.
{
"Successful": true,
"OldName": "Old Boring Name",
"NewName": "My New Name"
}
| Name | Type | Description |
|---|---|---|
| Successful | bool | Indicates success of rename. |
| OldName | string | The name the layer or component used to have |
| NewName | string | The name the layer or component now has - should match the supplied name (but may not) |