Beta 0.2.0-beta.2, not yet for critical processes. See the roadmap
PNeX logo
Documentation of the version in development, not released yet. See the stable release (0.1.0)

Map & POIs

Map of your sites with clustering, attached objects, placed devices, and your own basemap, geocoder and router

Monitor › Map shows the organization's sites on a map. Each point of interest (POI) carries a pictogram, a label, a free location ("Bldg A — Floor 2 — Room 204") and attached objects: devices, media, tours and dashboards. The same tree opens as a list from the Sites page (List view / Map view).

Devices placed on a POI

A device is not a POI: it is placed on a POI (+ Attach an object → Device), with an optional precise location ("Rack 3 — Aisle B"). A marker can hold several devices, but a device has a single placement: attaching it elsewhere offers to move it here after confirmation. Deleting a POI leaves its devices to be placed again. Media, tours and dashboards, on the other hand, can be attached to several POIs.

POI drawer with attached device, tour, dashboard and panorama

Attach-object picker

Search, filters and clustering

  • Search a POI… also matches the slugs and locations of placed devices.
  • Filters: Attached to a device, With GPS position, and Type (pictogram).
  • Clustering computed server-side for large fleets.
Map with the POI list and its filters, and the drawer of the selected POI
Map with the POI list and its filters, and the drawer of the selected POI

A live GPS layer of device positions (the geofencing foundation) is planned: no firmware sends a GPS position yet. The With GPS position filter (POIs where a placed device reports its position) therefore matches nothing for now.

Geo providers

The organization plugs in its own map engines, as it brings its own LLM: a basemap under the points, a geocoder (address to position and back) and a router (itineraries). PneX supplies none. Until a basemap is added, the map shows a plain background with "No basemap: add a basemap provider…", and address search is unavailable.

Providers are set in Settings › Organizations → Manage (organization detail), section Geo providers, by an Owner or Admin:

  • Add geo provider: Name, Type (Basemap; Nominatim or Photon for geocoding; Valhalla or GraphHopper for routing), the URL (a MapLibre style URL for a basemap, for example from MapTiler; the Base URL of the service otherwise), then tick the Uses it serves (Basemap, Geocoding, Address of a point, Route…) and Default for the ones the organization should use.
  • API key (optional): typed or picked from the vault. It is added to the provider's URLs under the URL parameter name of the key (key by default, as Google and MapTiler expect; Mapbox uses access_token).
  • A basemap can have a Dark style URL (optional): the map uses it while the app is in dark mode (Profile).
  • Geocoders and routers accept Parameters (one per line, key=value), for example accept-language=fr for Nominatim, a Max requests per second (1 by default, the public Nominatim policy) and whether The provider allows keeping results.
  • Test loads the basemap style, or geocodes / routes a known place, and shows the latency or the reason of the failure.

The first provider of a use becomes its default; ★ marks the defaults. Members and Viewers see the list and use the map, but cannot change providers.

On the map

  • Search an address… (top left) geocodes through the default geocoder, with results appearing as you type. Click a result to recentre the map, or + POI to create a point of interest prefilled with that address and its coordinates.
Address search: results appear as you type, each with + POI
Address search: results appear as you type, each with + POI
  • In + Add POI mode, clicking the map prefills the location with the address of that point when a reverse geocoder (Address of a point) is configured.
  • With several basemaps, a selector at the top right switches between them; the choice is remembered on this device.
  • Routing is car only for now. The router is configured and tested here; the map does not draw itineraries yet.

The server geo proxy

The browser never calls a geocoder or a router: every request goes through the PneX server, which adds the key, caches answers and enforces each provider's request budget. Geocoding and routing keys therefore never leave the server. The server also refuses provider addresses that point at itself or at its internal services: use the LAN address of the machine running your engine.

A basemap key is a browser key: the browser loads the tiles itself, so every member can see it. Restrict it to your PneX address in the provider's console, as for any Google Maps or MapTiler key.

Built on MapLibre GL, the map is a first-class page, not an embedded widget.

On this page