maplibre: feature parity tracking #1

Open
opened 2026-02-19 23:49:09 +00:00 by ryan · 0 comments
Owner

Track missing MapLibre GL JS features in the maplibre/ subpackage.

Tier 1 — High-Impact

  • Event system (click, mousemove, mouseenter/leave, contextmenu, load, idle, zoom/rotate/pitch events, layer-specific events)
  • Controls (NavigationControl, ScaleControl, GeolocateControl, FullscreenControl, AttributionControl, TerrainControl, GlobeControl)
  • Full camera animations (easeTo, jumpTo, fitBounds, panTo, panBy, zoomIn/Out/To, rotateTo, stop; expand FlyTo with bearing/pitch/speed/curve/duration)
  • Feature querying (queryRenderedFeatures, querySourceFeatures)
  • Image/sprite management (addImage, removeImage, hasImage, loadImage, updateImage)

Tier 2 — Advanced Use Cases

  • Additional source types (RasterDEM, Image, Video, Canvas)
  • GeoJSON clustering options (cluster, clusterRadius, clusterMaxZoom, clusterMinPoints, clusterProperties)
  • Layer management (moveLayer, getLayer, setFilter, setLayerZoomRange, getLayersOrder)
  • Feature state (setFeatureState, getFeatureState, removeFeatureState)
  • Terrain/3D (setTerrain, getTerrain, setLight, getLight, setSky, getSky)
  • Projection (setProjection, getProjection — mercator/globe)
  • Coordinate conversion (project, unproject)
  • Bounds (fitBounds, getBounds, getMaxBounds/setMaxBounds, LngLatBounds type)

Tier 3 — Constructor Options

  • Interaction toggles (interactive, scrollZoom, boxZoom, dragRotate, dragPan, keyboard, doubleClickZoom, touchZoomRotate, touchPitch, cooperativeGestures)
  • Bounds/limits (bounds, maxBounds, minPitch, maxPitch)
  • Rendering options (renderWorldCopies, hash, fadeDuration, pixelRatio)
  • Transform hooks (transformRequest for auth'd tile servers)

Tier 4 — Marker/Popup Completeness

  • Marker options (element, anchor, offset, rotation, scale, opacity, className)
  • Popup options (closeOnClick, closeOnMove, anchor, offset, className)
  • Marker events (dragstart, drag, dragend, click) — via MarkerHandle
  • Popup events (open, close) — via PopupHandle

Tier 5 — Plugins & Niche

  • MapLibre GL Draw integration (interactive drawing/editing of points, lines, polygons)
  • Interaction handler API (enable/disable for scrollZoom, dragPan, etc.)
  • Type-safe expression builder
  • Custom WebGL layers
  • Debug properties (showTileBoundaries, showCollisionBoxes, etc.)
  • Utility types (LngLatBounds, MercatorCoordinate, EdgeInsets)
  • Global/feature state management
Track missing MapLibre GL JS features in the `maplibre/` subpackage. ## Tier 1 — High-Impact - [x] Event system (click, mousemove, mouseenter/leave, contextmenu, load, idle, zoom/rotate/pitch events, layer-specific events) - [x] Controls (NavigationControl, ScaleControl, GeolocateControl, FullscreenControl, AttributionControl, TerrainControl, GlobeControl) - [x] Full camera animations (easeTo, jumpTo, fitBounds, panTo, panBy, zoomIn/Out/To, rotateTo, stop; expand FlyTo with bearing/pitch/speed/curve/duration) - [ ] Feature querying (queryRenderedFeatures, querySourceFeatures) - [ ] Image/sprite management (addImage, removeImage, hasImage, loadImage, updateImage) ## Tier 2 — Advanced Use Cases - [ ] Additional source types (RasterDEM, Image, Video, Canvas) - [ ] GeoJSON clustering options (cluster, clusterRadius, clusterMaxZoom, clusterMinPoints, clusterProperties) - [ ] Layer management (moveLayer, getLayer, setFilter, setLayerZoomRange, getLayersOrder) - [ ] Feature state (setFeatureState, getFeatureState, removeFeatureState) - [ ] Terrain/3D (setTerrain, getTerrain, setLight, getLight, setSky, getSky) - [ ] Projection (setProjection, getProjection — mercator/globe) - [ ] Coordinate conversion (project, unproject) - [x] Bounds (fitBounds, getBounds, getMaxBounds/setMaxBounds, LngLatBounds type) ## Tier 3 — Constructor Options - [x] Interaction toggles (interactive, scrollZoom, boxZoom, dragRotate, dragPan, keyboard, doubleClickZoom, touchZoomRotate, touchPitch, cooperativeGestures) - [x] Bounds/limits (bounds, maxBounds, minPitch, maxPitch) - [x] Rendering options (renderWorldCopies, hash, fadeDuration, pixelRatio) - [ ] Transform hooks (transformRequest for auth'd tile servers) ## Tier 4 — Marker/Popup Completeness - [x] Marker options (element, anchor, offset, rotation, scale, opacity, className) - [x] Popup options (closeOnClick, closeOnMove, anchor, offset, className) - [x] Marker events (dragstart, drag, dragend, click) — via MarkerHandle - [x] Popup events (open, close) — via PopupHandle ## Tier 5 — Plugins & Niche - [ ] MapLibre GL Draw integration (interactive drawing/editing of points, lines, polygons) - [ ] Interaction handler API (enable/disable for scrollZoom, dragPan, etc.) - [ ] Type-safe expression builder - [ ] Custom WebGL layers - [ ] Debug properties (showTileBoundaries, showCollisionBoxes, etc.) - [ ] Utility types (LngLatBounds, MercatorCoordinate, EdgeInsets) - [ ] Global/feature state management
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ryan/via#1