Mapping

Part of the IP4CMS portal. ← All module guides

What it's for β€” Mapping lets you build interactive maps that compose your operational data onto a single canvas. A map is a saved container; you stack layers on it to plot locations, feasibility results, and vehicles, and to overlay external imagery from WMS or ArcGIS tile servers. The map reads live data from the locations, feasibility, and vehicles modules each time it opens, so you do not re-import anything β€” you define what to show and the map draws it. Each layer can be coloured, toggled on or off, and clicked through to the underlying record.

Where to find it β€” Left navigation: Mapping (route /app/mapping, which opens the map list at /app/mapping/maps). A selected map opens at /app/mapping/maps/:mapId.

Before you start β€” You need:

Key tasks

Create a map

  1. Open Mapping from the left navigation.
  2. In the left panel, click New map.
  3. Enter a Name and click Save.
  4. The new map opens automatically with an empty canvas centred on a default view (Cape Town). Add layers to populate it.

To rename a map, hover its entry in the list and click Edit, change the name, and Save. To delete a map, use the delete confirmation β€” this removes the map and all its layers and cannot be undone.

Add a Location layer

Plots your tenant locations as points (or their stored shapes).

  1. Open a map, then in the right-hand Layers panel click Add layer.
  2. Set Layer type to Location.
  3. Enter a Name for the layer.
  4. Pick a Color for the markers.
  5. Optional filters:
  1. Click Add.

Markers use each location's stored shape geometry when present, otherwise its latitude/longitude point. Locations with neither are omitted. Clicking a marker shows the name, address, and (if you have locations access) an Open location β†’ link.

Add a Feasibility layer

Plots feasibility requests as points, coloured by result.

  1. Add layer β†’ Layer type = Feasibility.
  2. Enter a Name.
  3. Choose a Request group (required): either a specific group, or All feasibility requests. (If no groups exist, only the "All" option is offered β€” groups are created via bulk upload on Feasibility Requests.)
  4. Filter by status (optional) β€” tick any of Feasible, Not feasible, Maybe, Pending to show only those results. Leave all unticked to show every result.
  5. Click Add.

Points are coloured by result: feasible = green, not feasible = red, maybe = amber, pending = grey. Coordinates come from each request's input. Clicking a point shows the status and an Open request β†’ link.

Add a Feasibility Query (locations) layer

Plots every location used by a saved location-based feasibility query (proximity, inside-polygon, or line-of-sight).

  1. Add layer β†’ Layer type = Feasibility Query (locations).
  2. Enter a Name and pick a Color.
  3. Select a Feasibility query from the list. If none appear, create proximity / inside-polygon / line-of-sight queries first. Use the Set up feasibility queries link to jump to Settings β†’ Feasibility, then the refresh control to reload the list.
  4. Click Add.

Add a Vehicles layer

(Requires the vehicles module.) Plots vehicles at their best-known position.

  1. Add layer β†’ Layer type = Vehicles.
  2. Enter a Name and pick a Color.
  3. Optional filters:
  1. Click Add.

Each vehicle is placed by, in order: its stored GPS (live tracking) if set; otherwise its linked property location; otherwise the member's base location. Vehicles with none of these are omitted. The popup shows registration, type, the position source used, and (with vehicles access) an Open vehicles β†’ link.

Add a WMS Server layer (external tiles)

Overlays imagery served by a WMS endpoint (e.g. coverage/GIS maps). WMS layers render beneath your data layers as a base overlay.

  1. Add layer β†’ Layer type = WMS Server.
  2. Enter a Name.
  3. Color (BGCOLOR) β€” background colour applied to transparent areas of the WMS request.
  4. WMS Server URL (required) β€” the base WMS URL. Paste the full URL; any query string is stripped. For ArcGIS WMS, ensure it ends with WMSServer and no trailing ?.
  5. Layers (required) β€” comma-separated WMS layer names (default 0,1). Find these from the server's GetCapabilities document (append ?SERVICE=WMS&REQUEST=GetCapabilities to the URL).
  6. WMS Version β€” 1.3.0 (default) or 1.1.1.
  7. Format β€” image/png or image/jpeg.
  8. BGCOLOR override (optional) β€” a value in 0xRRGGBB form; overrides the Color above. Transparency is always on.
  9. Click Add.

Add an ArcGIS (tile) layer (external tiles)

Overlays a pre-rendered ArcGIS REST MapServer tile service (e.g. an LTE coverage layer).

  1. Add layer β†’ Layer type = ArcGIS (tile).
  2. Enter a Name.
  3. ArcGIS Tile URL (required) β€” the base MapServer URL, or a full tile URL. The /tile/{z}/{y}/{x} path is appended automatically; if you paste a full tile URL, everything from /tile/ onward is trimmed back to the base.
  4. Query params (optional) β€” a query string for tile requests, e.g. blankTile=false (do not include the leading ?).
  5. Click Add.

View, recolour, toggle, and remove layers

How the data connects

You enter / selectWhere it is storedWhat it feeds / consumes
Map namemap table (per tenant)The saved container listed in the left panel; updated_at is bumped on any layer change so the list sorts by recent activity
A layer's type, name, colour, and filtersmap_layer table (config JSON, ordered by sequence_number)Defines what data to fetch and how to draw it; the map editor reloads layers when the map changes
Location layer filters (location type / supplier)layer config.filtersReads the locations module: matching, non-deleted locations are turned into GeoJSON points/shapes
Feasibility request group + status filterlayer configReads feasibility requests; coordinates from each request's input, colour from result
Feasibility query selectionlayer config.feasibility_query_idReads the feasibility module via its query logic, returning that query's locations
Vehicle filters (type / property / member)layer configReads the vehicles module; position resolved from tracking GPS β†’ property location β†’ member base
WMS / ArcGIS URL, layers, params, bgcolorlayer config (wms_* / arcgis_*)Consumes the external tile server directly from the browser; no tenant data involved

The data layers (location, feasibility, feasibility-query, vehicle) are served as GeoJSON from /mapping/layers/:layerId/geojson and cached per tenant + layer on the server. Editing or deleting a layer invalidates that cache so the next view rebuilds it. WMS and ArcGIS layers are not cached server-side β€” the browser fetches their tiles live.

Permissions & access

Tips & gotchas