Map view
The network on a map - filter-scoped vector tiles, colouring by condition, risk or age, Esri overlays, and click-through to any feature.
For linear assets the map isn't a visualization nicety - it's the primary interface. "Which segment is this?" is a map question, and so is "where are we weakest?".
What renders
In the Features tier the map draws features once at least one filter narrows it: network, feature class, zone, material, condition band, risk level, or feature type. Until then it shows the basemap alone, framed on where your features are, with a note asking you to pick a filter - an unfiltered map would stream every tile in the tenant, so the filters are what scope the vector tiles. The basemap switcher and the Esri overlays work before any filter is set. There are no per-layer checkboxes; set the filter bar to "just watermains" or "one zone" and the tiles follow. Network and feature class accept several values, so two networks can share one map - tick both and one tile request carries them. The only on-map layer control is the Esri overlay switchboard (below).
A zone filter clips the tiles to that zone's boundary - the boundary itself doesn't draw.
The other two tiers scope themselves, so they answer the same question differently:
| Tier | What draws | What scopes it |
|---|---|---|
| Features | Segments and nodes, coloured by condition, risk or age | At least one filter |
| Routes | The same segments, with the selected route's members highlighted | At least one filter |
| Corridors | Every active corridor as a line, coloured by urgency band | Nothing - the layer is one line per street |
Clicking works the same in all three, but selects the thing the tier is about. In Routes, clicking a segment selects the route it belongs to - the whole route lights up and the map fits to it. A segment that belongs to no route opens as a feature instead. Where a segment sits on two routes (a shared intersection, a multi-named street) the click resolves to the same one every time.
In full-map view the Routes tier has no table to pick from, so a route picker sits in the top-left corner of the map. It lists the routes the tier's filters and search matched; choosing one highlights it and fits the map to it, exactly as clicking its row would. When more routes match than the list holds, it says so - narrow with its search box.
Coloring
Features paint by condition by default - the triage view; red segments cluster where programs should go. A Colour by control sits beside the basemap switcher in the top-right of the map, offering three views of the same features:
| Colour by | What it paints | Grey means |
|---|---|---|
| Condition | The condition score, on the product-wide scale | No condition score recorded |
| Risk | The risk band, consequence of failure against likelihood | Not assessed - see below |
| Age | Years since the in-service date, on a cyan-to-purple ramp | No in-service or purchase date |
Switching between them is instant and fetches nothing - all three read attributes the map already holds.
Risk needs condition. Likelihood of failure is derived from the condition score, so a feature nobody has inspected has no risk band and paints grey. An all-grey risk map means the estate is unassessed, not that the feature is broken - inspections are the way back.
Age is not a verdict. It runs cyan through purple rather than borrowing the red-to-green condition colours, on purpose: a 40-year-old pipe with a 100-year service life is healthy, and a 15-year-old one near the end of a 20-year life is not. The ramp shifts hue rather than getting lighter and darker, so every band stays readable whichever basemap you are on. Age answers how old something is. For when it is due, use the forecast ramp below, which resolves each feature's service life first.
Two further paint modes live on other surfaces: the replacement planner's map mode paints by forecast replacement year, and the corridors view paints corridor urgency bands. The legend always follows whichever mode is showing.
The forecast-year ramp bands a feature by how far its replacement year is from today, and reserves red for work you are already carrying:
| Band | Replacement year | Colour |
|---|---|---|
| Past due | before this year | red |
| Urgent | this year through 2 years out | orange |
| Soon | 3-5 years | amber |
| Mid-term | 6-10 years | lime |
| Long-term | more than 10 years | green |
| Unknown | no install date or service life | grey |
A feature's replacement year is its in-service date plus its service life, and that service life is inherited from the material or feature class when the feature carries none of its own.
Esri overlays
When you have Esri sources configured, the on-map switchboard toggles each active source on as a read-only overlay - the live GIS layer drawn over your AssetLab features. Every feature of the layer in view is drawn, fetched 2,000 at a time and filling in as each batch arrives, up to 20,000 per layer; past that, or when the ArcGIS service does not support paging, the switchboard says the layer is incomplete. Overlays load from a town-wide view in, and ask you to zoom in when the view covers a whole region. The overlay draws as a dashed line on top of your features, so where the two agree you see the dashes over the condition colour, and where GIS has something you do not, the dashes stand alone. Click one of those lone overlay features to open a bind dialog that brings it into AssetLab - useful for reconciling what GIS has against what you manage. Where an AssetLab feature lies under the overlay, the click opens that feature instead.
The basemap
The built-in basemap comes in three variants - Dark, Streets and 3D buildings - all drawn from OpenStreetMap data as vector maps, so they stay sharp at any zoom and label text renders crisply rather than being baked into the image. The layers button at the top right of the map switches between the built-in variants and any basemaps your organization has added, and your choice is remembered per user on that device.
3D buildings is the Dark cartography with building massing extruded to its real height, and picking it tilts the camera so the massing reads. Buildings only appear from zoom 14 in - at a city-wide view there are no footprints to extrude, so the map stays flat until you zoom into a block. Heights come from OpenStreetMap, so coverage follows what has been surveyed in your area: a downtown core is usually well mapped, an industrial edge often is not. Switching back to Dark or Streets levels the camera again. Use it to read a corridor in context - which segments run beside a built frontage and which cross open ground - rather than as a survey of the buildings themselves.
When you are viewing one of your organization's own basemaps, a tone slider appears at the bottom left of the map - slide it down to mute the imagery so condition colors carry the story. That setting is remembered per user as well.
Administrators can add custom raster basemap sources (XYZ, WMS, or WMTS) under Settings → Infrastructure → GIS & basemaps (the old Infrastructure → Basemap address redirects there). A source marked as the organization default is what new users see first. For ArcGIS servers, paste the MapServer link directly - AssetLab converts it to the tile endpoint. Tiled ArcGIS caches must be published in Web Mercator to display; if your GIS server offers a _WM variant of a service, that is the one to use - a cache in a local projection (such as UTM) serves tiles the map cannot place. Secured ArcGIS services are supported with the ArcGIS token access option: enter the GIS sign-in username and password once and AssetLab generates and refreshes the short-lived tokens itself; credentials are stored encrypted and are never sent to the browser.
Working from the map
Hover syncs between map and table, and a view switcher toggles table, split, and full-map layouts - whichever you last used is remembered per user on that device, so leaving on the map means coming back to the map. Clicking a feature selects its row in split view - the list scrolls that row to the middle and tints it, so a feature picked off the map is findable even a few hundred rows down. In full-map view (or when the row isn't on the current page) it opens the feature detail sheet instead. In the Routes tier a click resolves to the route the segment belongs to and opens that route's panel in every layout, split included. All three layouts work in every tier, so a route or a corridor can be read side by side with its table row.
Hold Ctrl (Cmd on a Mac) while clicking to gather several features instead of opening one. Each modified click adds a feature to the selection or takes it back out, the picked features stay highlighted, and an actions bar appears above the map with the same options the table's checkbox selection offers: Insights, Create work order, Create project, Create PM schedule, Set condition, Change status, Assign asset type, and Delete. A plain click clears the gathered set and goes back to selecting one feature. This is the map equivalent of ticking rows in the table - useful when the thing you are scoping is a stretch of street rather than a list you can filter down to.
The same modifier works in the Routes and Corridors tiers, where it gathers into the project basket instead - Ctrl-click a segment and the route it belongs to joins the basket; Ctrl-click a corridor and that corridor does. Everything gathered stays highlighted and the basket counts it above the table - above the map in full-map view. Ctrl-clicking a route or corridor that is already in the basket takes it back out, and for a route that means any of its segments, not only the one you added it from. Managers and above, since the basket's only action is creating a project. Unlike the Features tier a plain click does not empty it: the basket spans tiers on purpose, so it is cleared only by Clear or by the project you create from it.
Panning away from what you selected is easy, so a focus button sits beside the layers button at the top right. It returns the camera to whatever the map is currently about: the selected feature, route or corridor in that tier, or - with nothing selected - the area where your features cluster. A few features lying far outside it (a stray import, a feature digitized in the wrong place) are left out of that framing so they cannot pull the view across the country; they are still drawn and still listed, so zoom out to find them. It's the same fit the map performs when you select the row, so focusing never lands somewhere new.
The detail sheet carries the feature's quick stats, attributes, financials and custom fields, and three actions: Close, Create Work Order, and Open full page. Create Work Order opens the work order form with the feature already attached - Staff and above see it. Common flows:
- Dispatch - resident reports a break at an address; find the segment on the map, open it, raise the work order right from the sheet
- Windshield triage - reviewing an area before budget season, clicking through the segments in question
- Data QA - after any sync or import: missing geometry, zero-length segments, and misclassified features are visually obvious
Scale
Tiles stream per filter, so the map stays responsive on networks of tens of thousands of segments - as long as you keep the filter meaningful. If a view feels heavy, narrow to the network or class in question.