Skip to content

Floor Connectivity

Connector Amenities

Escalators, elevators, and stairs can be linked across floors so the system knows they represent the same physical connection.

How It Works

Each connector amenity has an optional connectorGroupId in its properties. When two connector amenities on different floors share the same connectorGroupId, they are linked.

Example: an escalator on L1 and the same escalator on L2 both have connectorGroupId: "Main Escalator".

Real-World Patterns

TypeTypical Connection
Escalator2 adjacent floors — one feature per floor, same connectorGroupId
Elevator shaftMultiple floors — one feature per floor, all sharing the same connectorGroupId
Multiple banksA mall may have 3 separate escalator banks between L1 and L2 — each bank gets its own connectorGroupId

Editor UI

When placing or editing a connector amenity:

  • "Connects to" shows existing connections across the mall as floor name chips (e.g. "L1 & L2")
  • Clicking a chip links this connector to that group
  • Or type a name to create a new connection (e.g. "East Lift")

Validation

connectorGroupId is validated server-side — only allowed on connector amenity categories (escalator, elevator, stairs). Rejected on non-connectors like toilets.

Floor Alignment

For geographic coordinate malls, floors should align naturally since they share the same lat/lng space. For fine-tuning:

  • Per-floor alignment (FloorMapAlignment): offsetX, offsetY, rotation adjustments
  • Reference floor overlay: Admin can pick another floor as visual reference, then nudge current floor to align
  • Mall-wide domain: computeMallGeographicDomain() applies all floor alignments to produce a shared bounding box

Using Escalators as Alignment Anchors

For malls without elevator data (most Australian Vicinity malls), use the most prominent escalator bank as the cross-floor alignment reference. Pick the central escalators that appear on every floor, give them all the same connectorGroupId, and the system uses their positions as spatial anchors.