Ensures the profile sprite is injected and its MapLibre images registered for a
layer that carries symbolId features. The sprite is DOM-injected lazily and its
images are otherwise only (re)registered on a basemap style swap — so a POI layer
loaded without a basemap change (e.g. a data-theme switch) would render no icons.
Idempotent: the sprite loader no-ops once injected, registerSpriteIcons skips
existing images, and map.addImage() triggers a repaint so the symbol layer picks
them up. No-op when the data carries no symbolId features. Extracted from the
adapter's addGeoJSONLayer (socle B.1) to keep it under the 700-line budget.
Ensures the profile sprite is injected and its MapLibre images registered for a layer that carries
symbolIdfeatures. The sprite is DOM-injected lazily and its images are otherwise only (re)registered on a basemap style swap — so a POI layer loaded without a basemap change (e.g. a data-theme switch) would render no icons. Idempotent: the sprite loader no-ops once injected,registerSpriteIconsskips existing images, andmap.addImage()triggers a repaint so the symbol layer picks them up. No-op when the data carries nosymbolIdfeatures. Extracted from the adapter'saddGeoJSONLayer(socle B.1) to keep it under the 700-line budget.