Skip to content

The Roadmap #2

@CraigglesO

Description

@CraigglesO

Large scale progress tracker

Beta Phase

Sub Packages

  • React
  • Vue
  • Svelte

Render Mechanics

  • WebGPU Glyph-icon pairs not working
  • WebGPU cursor interactivity for Fills not working as intended
  • WebGPU cursor interactivity for Glyphs not working as intended
  • Glyphs text-along-path
  • WM Projection -> allow option to force minzoom to be limited to show whole map on canvas at a minimum
  • WM Projection -> duplicate on the x axis
  • Hash -> URL synced with map position
  • Tile flush working across workers to know when tiles are fully rendered
    • Source (used by most)
    • Marker source
    • Local source
  • awaitFullyRendered
  • screenshot

Stability

  • Zooming is smoother for WebGPU and tiles visually stay while zooming out.
  • Dashed lines is bugged
  • glyphs along path don't coexist with other glyphs yet.
  • WebGPU sometimes tries to render deleted tiles. Rare case and doesn't seem to inhibit user interaction?
  • tile duplicates on the x axis -> parent tiles don't show
  • Glyphs overlap as you zoom in (not killing parent glyphs correctly?)
  • Some WebGPU Workflows can be converted to async from the painter
  • Migrate the WebGL "Programs" to work the same way as "Workflows" from WebGPU
  • Get unicode/LTR/substitution Zig parser out of experimental to production ready
  • offscreen: false is blurrier than offscreen.
  • changing screen size doesn't update view if needed

Testing

  • All examples have WebGL1, WebGL2, and WebGPU tests to ensure they work before any more code is added.
    • All text/icon type tests
    • dashed lines

NOTE:

Upon completion of Beta, and before beginning work on a 1.0 release, there will be a waiting period to see if any major changes are required before deciding upon a complete product.


1.0 RELEASE

Features

  • zoom out keeps children tiles
  • Comments for all code
  • raster fade-in from parent
  • snapshot post flush
  • improve zooming in webgl1 for fill just like heatmap
  • webgl1 sorting fallback last doesnt work
  • Style/MapOptions converter for Mapbox
  • Style/MapOptions converter for Maplibre
  • S2 Clustering
  • Hillshade works correctly for 512x512 images
  • Unicode parsing via Zig module Completed
  • Glyphs Alpha fading
  • move mouse position over canvas and get visual changes
  • Fill pattern -> support scaling the image

API

  • getBounds/setBounds
  • getMaxBounds/setMaxBounds
  • setProjection/getProjection
  • addSource/deleteSource
  • addLayer/deleteLayer/updateLayer
  • getStyle
  • getFeatureState/DeleteFeatureState/setFeatureState

Build

  • Support a single file build that can use offscreen canvas new Worker(new URL(..., import.meta.url), { ... })
  • NodeJS/Bun local builds for webgpu
  • A foundation for native.

Stability

  • TODO - fill this section correctly
  • Webgpu Glyph filtering doesn't properly follow a robust ordered pattern like webgl does
  • Testing pipeline via actions (after release for free github actions, but first to fix)
  • zooming towards cursor is a bit off for both cases.

Testing (Excluding WebGL / WebGPU)

  • Server side rendering WebGPU tests
    • mouse interactions
    • zoom interactions
    • hover value
    • popup on hover
  • Plugins tests
  • UI
    • projector
      • getTiles
      • cursorToLonLat
      • mat4
    • animator
    • cache
    • dragPan
    • timeCache
  • Workers
    • process
      • glyph
      • util
      • fill
      • line
      • point
      • raster
    • source
      • json-vt
      • point-cluster / ClusterSource
      • glyphSource
      • imageSource
      • jsonSource
      • localSource
      • markerSource
      • s2tilesSource
      • spriteSource
      • texturePack

Documentation

  • TODO - fill this section correctly

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions