Skip to content
Mapping

3D & massing

Buildings are context, the proposal is the subject, and the camera stays flat until 3D earns its keep. Numbers measured from the shipping map.

Buildings fade in

Context buildings are fill-extrusions whose opacity is interpolated on zoom: 0 at 14.5, 0.75 at 15.5. A city of prisms popping into one frame is the worst frame the map can paint; a full level of fade means no frame is the arrival frame.

z 14.5 · opacity 0z 15.5 · opacity 0.75
The fadeThe same block, one zoom level apart. Illustrative geometry; the opacities and stops are the map's.
  • Height is coalesce(h, 3) — where the storeys model has no answer, a building is one storey, which is the honest default in a detached-housing fabric, not a guess dressed as data.
  • fill-extrusion-vertical-gradient is on for EVERY extrusion — the light comes from one sky, including on the proposal.
  • The building mass is a cool neutral (#E8E9ED) matched to the basemap's greys — buildings are furniture, never a signal.

The solidity ladder

Opacity is rank. The thing being proposed is the most solid thing on the map, and everything else yields to it.

Proposal 0.9
Context 0.75
Selection 0.42
Opacity is rankProposal 0.9 · context 0.75 · selection massing 0.42 — the numbers the map ships.
  • 0.9 — the PROPOSAL: best-fit massing or an uploaded model on the selected lot.
  • 0.75 — context buildings at full zoom: solid enough to read, transparent enough to see a boundary through.
  • 0.42 — the selected lot's own massing when it is selection rather than proposal, in the accent.
  • The 3D planning envelope is drawn as foot + walls from the parcel's own base/top attributes — the rule volume is geometry, not decoration, and the easements are drawn BEFORE it so the carved-out box reads as clear of them.

Pitch & tilt

2D is the working view. 3D is a mode the user enters, not a state the map drifts into.

  • Every ordinary camera move lands flat and north-up — pitch 0, bearing 0 ride along on every fly, fit and reset.
  • While an envelope is up, the reframe owns tilt: forcing pitch 0 before re-tilting paints a one-frame bounce, so the fit leaves pitch alone exactly then.
  • Leaving 3D is one ease, 600–700 ms, back to flat — the same duration class as every other mode reset (Camera & movement).

Navigate

Esc