Interface Lab
Back to knowledge
Data Visualization

Map POI Icon Attribution Boundaries

POI icon sets such as Maki solve map symbols, not map data, tiles, style, basemap providers, place labels, or interaction attribution.

Design Principle

Map symbols are one layer of visual encoding. Agents must govern icon set, sprite, map style, geodata, tile provider, legend, and accessible labels separately instead of treating icon license as map license.

Large Theory

Map POI icons may be tiny SVGs, but they encode place type, status, risk, and action entry points. Map projects often mix Maki, MapLibre, OSM data, third-party tile providers, custom sprites, and business points, making attribution and semantic boundaries unclear. Treat icons as a symbol layer: record icon source and license, define category and state semantics, provide legend and text labels, and separately record map data and tile attribution.

Small Points

  1. Icon-set license covers icon files only. Basemap, vector tiles, geodata, place names, and business data have separate sources.
  2. Maki is a POI icon set for cartographers, with SVG source files designed at 15px x 15px; it fits dense small map markers, not generic large UI illustration.
  3. POI icons should work with text labels, legends, and redundant color/shape/size encodings; one tiny symbol cannot explain all business state.
  4. Sprite and style JSON need version and build records. Modified icons also need derivative and source notes.
  5. Clickable markers require accessible names, keyboard paths, selected state, and detail-panel sync. Canvas/WebGL-only markers need list alternatives.
  6. Clusters, heat layers, and status icons need rules so semantics do not change unexpectedly across zoom levels.

Design Judgment

A POI layer is healthy when map users understand place type and state through icons, labels, legends, and list alternatives, while development records separately identify icon, tile, geodata, and provider attribution. Knowing only that Maki or MapLibre was used is not enough.

Implementation Notes

Create a POI icon record: iconSet, iconName, sourceHref, licenseHref, spriteVersion, styleLayer, semanticCategory, statusMapping, legendLabel, accessibleNamePattern, fallbackListLabel, modifiedFrom, tileProvider, and geodataSource. Sync marker click results to list and detail views. On mobile, touch targets should not be only the 15px icon. For dense maps, use clustering or filters to reduce overlap.

Counterexamples/Risks

Treating Maki CC0 as if OSM data required no attribution, using 15px icons as large blurry buttons, omitting a legend, using the same hospital icon for hospital, customer health, and risk state, making mobile markers too small to tap, and exposing unlabeled marker buttons to screen readers.

Case Study

The Maki repository describes a POI icon set for cartographers, with SVG source icons available only at 15px x 15px, and the repository is CC0-1.0 licensed. MapLibre GL JS is a BSD-3-Clause WebGL map runtime. OpenStreetMap's copyright page explains that OSM data uses ODbL, and using OSM data requires attribution and license clarity. The reusable lesson is that map icons, map runtime, and map data are three different asset layers, and RAG recommendations should return them separately.

Source Links

Maki GitHub: https://github.com/mapbox/maki Maki Website: https://labs.mapbox.com/maki-icons/ MapLibre GL JS GitHub: https://github.com/maplibre/maplibre-gl-js OpenStreetMap Copyright: https://www.openstreetmap.org/copyright W3C WAI Informative Images: https://www.w3.org/WAI/tutorials/images/informative/

Agent Directive

When recommending map POI icons, return iconSet/license, sprite/version, semantic mapping, legend, accessible label, tile provider, and geodata attribution; do not treat icon license as map license.