Tile API

Data is segmented into tiles, formats are GeoJSON or Vector Tiles.

Data Format

URL Schema

GET http(s)://({abcd-})data.3dbuildings.com/tile/{z}/{x}/{y}.{format}?token={token}
URL element Description
abcd Alternative hosts a-data, b-data, c-data, d-data for load balancing
z Zoom level of requested tile
12 features represented as points
13-16 gradually detailed geometry
17 maximum quality, ~10 cm resolution
18+ not provided, clients need to scale up from level 17
x Horizontal position of tile at zoom level
y Vertical position of tile at zoom level
format Format can be json for GeoJSON or pbf for Vector Tile
token Your API access token

Example

curl -o "15-17605-10743.json" "https://data.3dbuildings.com/tile/15/17605/10743.json?token=YOUR_TOKEN"

Integration

OSM Buildings

<script> let map = new OSMBuildings(...) map.addMapTiles(...); map.addGeoJSONTiles('https://{s}-data.3dbuildings.com/tile/{z}/{x}/{y}.json?token=YOUR_TOKEN'); </script>

OSM Buildings for Leaflet

<script> let map = new L.Map(...); new L.TileLayer(...).addTo(map); let osmb = new OSMBuildings(map).load('https://{s}-data.3dbuildings.com/tile/{z}/{x}/{y}.json?token=YOUR_TOKEN'); </script>

Mapbox GL

The referenced style definition takes care for further url handling.

<script> let map = new mapboxgl.Map({ container: 'map', style: 'https://data.3dbuildings.com/tile/style/buildings.json?token=YOUR_TOKEN', ... }); </script>