aureality.cloud

Developers · Globe API v1

Put your places on the Aureality globe

Send people to a place, a set of places or your own GeoJSON on the Aureality globe, or embed the globe in your page and talk to it. You only need a link or an iframe.

Add query parameters to https://aureality.cloud/. The globe reads them once, after the Earth has loaded.

One pin with a name?pin=50.0875,14.4214|Old Town SquareOpen ↗ Several pins, framed together?pin=50.0875,14.4214|Prague;49.1951,16.6068|Brno;48.1486,17.1077|BratislavaOpen ↗ Fly to a view?fly=46.5580,7.8350,11Open ↗ Switch layers on?layers=quakes,wx-storms&fly=20,140,3Open ↗ Ask the visitor to choose a place?pick=Where should we meet?Open ↗
ParameterValueWhat it does
pinlat,lon or lat,lon|Label; separate several with ;Places pins and frames them. One pin flies to zoom 13. A single pin with a label opens its card after the flight. You can also repeat pin=.
titletextLabel for pins that have none.
texttextA short description shown in the pin card.
urlhttps://…Adds an “Open the source” link to the pin card. Only https links are shown.
colorhex without #, e.g. FF6B5APin colour, and the colour of a geojson layer. Default amber FFB547.
fromtextSmall heading above the pin label, e.g. your app’s name. Default “Shared link”.
flylat,lon or lat,lon,zoomFlies the camera there. Zoom defaults to 12 (0 = whole Earth, 18 = street).
geojsonhttps://… (URL-encoded)Loads a GeoJSON file into the visitor’s browser and draws it. See GeoJSON.
layerslayer ids, comma-separatedSwitches these layers on, at most 40. It never switches anything off. See Layer ids.
pickempty, or a prompt textShows a prompt and waits for one tap on the map. The visitor then gets a card with a link to that spot. In an embed the spot is also sent to your page.

Encode labels and URLs with encodeURIComponent. Pins are added only for valid coordinates (latitude −90 to 90, longitude −180 to 180).

Build a link in code

const u = new URL('https://aureality.cloud/');
u.searchParams.set('pin', '50.0875,14.4214|Old Town Square');
u.searchParams.set('text', 'Meet by the astronomical clock at 18:00.');
u.searchParams.set('from', 'Our club');
u.searchParams.set('color', '5FD3A8');
u.toString();
// https://aureality.cloud/?pin=50.0875%2C14.4214%7COld+Town+Square&text=…

Camera position

To open the globe at an exact camera, use the hash instead of a query. It is the same format the globe uses for its own place links.

HashMeaning
#50.0875,14.4214,16zLatitude, longitude, zoom (up to 18).
#50.0875,14.4214,17z,30b,55pOptional bearing in degrees (b) and pitch in degrees (p) for a tilted 3D view.
#…,17z&openAlso opens the details pane for what is at that point.
#…,17z&osm=way/123456Same, for an OpenStreetMap object (way, relation or node).
Old Town Square, tilted#50.0870,14.4208,17z,30b,55pOpen ↗

Embed the globe

Put the globe in an iframe. Every link parameter above also works in the iframe’s src.

HTML
<iframe
  id="aureality"
  src="https://aureality.cloud/?pin=50.0875,14.4214|Old%20Town%20Square"
  title="Map: Aureality globe"
  style="width:100%;aspect-ratio:16/10;border:0;border-radius:12px"
  loading="lazy"
  allow="fullscreen">
</iframe>
<p style="font-size:12px">Map: <a href="https://aureality.cloud/">Aureality</a>,
data credits on the map and in <a href="https://aureality.cloud/legal/#credits">Legal</a></p>

Only the globe itself, https://aureality.cloud/, can be embedded. Other pages of the site and sign-in cannot.

Keep the globe large enough to stay usable: at least 320 × 320 pixels. Do not cover or crop the map’s own credits; most map data needs them. See Data and licences.

Talk to an embedded globe

Your page and the globe exchange postMessage messages. Every message is an object whose type starts with aureality:. Wait for aureality:ready before you send: the globe ignores commands that arrive before the Earth has loaded.

JavaScript
const globe = document.getElementById('aureality');
const ORIGIN = 'https://aureality.cloud';
const send = (msg) => globe.contentWindow.postMessage(msg, ORIGIN);

addEventListener('message', (e) => {
  if (e.origin !== ORIGIN) return;          // accept events only from the globe
  const m = e.data;
  if (m.type === 'aureality:ready') {
    send({ type: 'aureality:pin', pins: [
      { lat: 50.0875, lon: 14.4214, label: 'Prague', text: 'Office' },
      { lat: 48.2082, lon: 16.3738, label: 'Vienna', color: '#5FD3A8' }
    ]});
  }
  if (m.type === 'aureality:selected') console.log('Tapped', m.label, m.lat, m.lon);
  if (m.type === 'aureality:picked')   console.log('Chosen', m.lat, m.lon, 'zoom', m.zoom);
});

Commands you send

typeFieldsWhat happens
aureality:pinlat, lon, optional label, text, url (https), color (#RRGGBB), zoom. Or pins: [ … ] for several. fly: false keeps the camera still.Adds pins and frames them. Tapping a pin opens its card and sends aureality:selected.
aureality:geojsondata (a Feature or FeatureCollection), optional color, fly: falseDraws the GeoJSON and frames it. Your data stays in the visitor’s browser.
aureality:flylat, lon, optional zoom (default 12)Flies the camera.
aureality:layerson: ['quakes', …]Switches layers on, at most 40 ids. Unknown, planned and sign-in ids are ignored. In an embed they are not saved.
aureality:pickoptional promptWaits for one tap, drops a pin there and sends aureality:picked.
aureality:clearnoneRemoves every pin and GeoJSON layer added through the API. Layers you switched on stay on.

Events you receive

typeFieldsWhen
aureality:readyversion: 1The Earth has loaded and the globe accepts commands.
aureality:selectedlat, lon, labelThe visitor tapped a pin added through the API.
aureality:pickedlat, lon, zoomThe visitor chose a place after aureality:pick. Coordinates have 6 decimals (about 10 cm).

The globe accepts commands from any page that embeds it and posts its events to the parent page. Events carry only coordinates and labels, so never put private data in pins you send. Check e.origin in your own listener, as in the example.

GeoJSON

Send a Feature or FeatureCollection (RFC 7946, coordinates as [lon, lat]). The globe draws:

GeoJSON
{
  "type": "FeatureCollection",
  "features": [
    { "type": "Feature",
      "properties": { "name": "Brno", "description": "Second stop", "url": "https://www.brno.cz/" },
      "geometry": { "type": "Point", "coordinates": [16.6068, 49.1951] } },
    { "type": "Feature",
      "properties": {},
      "geometry": { "type": "LineString",
        "coordinates": [[14.4214, 50.0875], [16.6068, 49.1951], [17.1077, 48.1486]] } }
  ]
}

For ?geojson=, the file must be served over https and allow cross-origin reads (Access-Control-Allow-Origin: *, or at least https://aureality.cloud). The visitor’s browser fetches it straight from your server; Aureality does not copy or store it. If the file cannot be loaded, the globe opens without it.

Layer ids

Use these with ?layers= or aureality:layers. Each layer keeps the credits and limits it has on the globe.

GroupIds
Maps2base satellite imagery · osmghost map lines · night day and night · borders · capitals · closeup tilt into 3D · terrain · buildings3d · monuments
Geopoliticseu · nato · asean · au · gov · elections · ua-war Russia’s war against Ukraine
Newsnews-world · news-eupress · news-relief · news-social · news-x · news-us · news-eu · news-asia · news-africa · news-mideast · news-latam · news-econ
Economy and peoplegdppc · income · wb-growth · wb-infl · wb-unemp · wb-trade · pop · wb-urban
Agriculture, industrywb-agland · wb-cereal · wb-agemp · wb-indva · wb-manuf · wb-hitech
Transport, infrastructurett-trains and tt-infra live departures (Europe, zoom 8+) · wb-air · wb-rail · wb-elec · wb-renew · wb-water · wb-internet
Healthwb-life · wb-hexp · wb-docs
Sportsport-football · sport-hockey · sport-basketball · sport-amfootball · sport-baseball · sport-tennis
Historyhist-today · hist-founded
Culturecu-fest festivals · cu-tours concert tours · cu-scena theatres, opera and concert halls · cu-kina cinemas · cu-bands bands · cu-obce events in Czech municipalities · cu-mesta city event calendars
Naturequakes · species from GBIF: sp-lynx · sp-wolf · sp-bear · sp-bison · sp-beaver · sp-stork · sp-oak · sp-lime · sp-orchid · sp-edelweiss
Weatherwx-aureality · wx-clouds · wx-rain · wx-radar-cz · wx-temp · wx-wind · wx-storms
Air and spacesky-top most interesting now · air · sats · sats-all · sky-aerial
Webcamscam-mountain · cam-weather · cam-traffic · cam-city · cam-landmark · cam-institution · cam-nature

Live demo

The buttons send real messages to the embedded globe below. The log shows what goes out and what comes back.

Loading the globe…

Loading the globeThe Earth takes a few seconds to load.


Data and licences

Your data

Pins, GeoJSON and coordinates you send stay in the visitor’s browser for that visit. Aureality does not receive, store or publish them. You are responsible for having the right to show what you send.

Credits you must keep

The globe shows its credits on the map, and the full list is on the Legal page. When you link to or embed the globe, keep those credits visible. When you show a screenshot or video of the globe, credit at least the base map:

Credit line for screenshots
Aureality (aureality.cloud) · © OpenStreetMap contributors (ODbL) · OpenMapTiles / OpenFreeMap
· Sentinel-2 cloudless 2016 by EOX IT Services GmbH (CC BY 4.0), contains modified Copernicus Sentinel data 2016 & 2017
· NASA Black Marble · Terrain: Mapterhorn, Copernicus DEM
SourceUsed forLicence
OpenStreetMapRoads, buildings, borders and names in the detailed map; place detailsODbL 1.0, credit “© OpenStreetMap contributors”
OpenMapTiles, OpenFreeMapVector tilesCredit required
EOxCloudless 2016Satellite imageryCC BY 4.0, EOX IT Services GmbH
NASA Black Marble, Blue MarbleCity lights, Earth texturesPublic domain
MapterhornTerrainCopernicus DEM, credit shown
Natural EarthBorders at small scales, capitalsPublic domain
World Bank Open DataCountry indicatorsCC BY 4.0
Wikipedia, WikidataWorld events, On this day, place summariesCC BY-SA 4.0; Wikidata CC0
GBIFSpecies recordsPer dataset, mostly CC0 or CC BY
adsb.lolAircraftODbL 1.0. Not for navigation.
Live feeds (USGS, weather, sport results, timetables, webcams)Live layersAs listed per layer in its details pane and on the Legal page

The API lets you show these layers on the globe. It does not give you a licence to download or reuse the layer data elsewhere; for that, go to each source and follow its licence. Several live feeds are fetched through small aureality.cloud proxies with short caches. Those proxies serve the globe only and are not part of this API.

Fair use