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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions