@expofp/floorplan
Version:
Interactive floor plan library for expos and events
26 lines • 1.5 kB
TypeScript
import { type Renderer } from '@expofp/renderer';
import { type Map as MaplibreMap } from 'maplibre-gl';
import { type RefObject } from 'react';
import { type GeoConfig } from './utils/geo-config';
/**
* Renders the outdoor PoI markers (hotels, parking, transit) as native
* MapLibre layers: a GeoJSON source with `cluster: true` plus symbol/circle
* layers on top of it. Geo map only — the hook is mounted from
* MaplibreAdapter, and runs once the renderer's `3d` custom layer exists so
* the marker stack draws above the floor plan.
*
* The marker feed is `store.poiMarkerStore`: `config-outdoor-poi` builds the
* marker records (including the rasterized pins, registered here via
* `map.addImage`), and the store derives selection (`selectedMarkerId`), the
* active filter (`outdoorFilter`) and dimming suppression from them. These
* layers are the *only* rendering outdoor PoIs get — see
* `configOutdoorPoiLayer`. Clicks are claimed from the renderer path via
* `poiMarkerHitTest`.
*
* Gated behind `enableExperimentalOutdoorMarkers`: with the flag off no layers,
* images or handlers are created at all. The feed is empty in that case too
* (`configOutdoorPoiLayer` never publishes), so this is belt-and-braces — it
* keeps the map untouched even if markers reach the store another way.
*/
export declare function usePoiMarkers(renderer: Renderer | null, mapRef: RefObject<MaplibreMap | null>, geoConfig: GeoConfig | null): void;
//# sourceMappingURL=usePoiMarkers.d.ts.map