Skip to content

feat: add camera pitch - #2281

Closed
greensopinion wants to merge 1 commit into
fleaflet:pitch-supportfrom
greensopinion:pitch-1-camera
Closed

greensopinion wants to merge 1 commit into
fleaflet:pitch-supportfrom
greensopinion:pitch-1-camera

Conversation

@greensopinion

@greensopinion greensopinion commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

MapOptions.maxPitch (default 0) allows pitch up to 60°. Ground layers
draw in perspective; markers and labels face the viewer. Adds
MapController.pitch and BillboardLayerTransformer.

I wrote this with Claude Code (Claude Opus 5.5). I directed the design,
reviewed the code, and tested it on a Mac, an iPhone 13, an iPhone 15 Pro
Max, a Pixel 4a (5G), and in Chrome.

This is the first of 5 PRs that add pitch. The others are:

  • Pitch gestures: two-finger vertical drag on touch screens, and Ctrl-drag
    on desktop.
  • Camera fits that account for pitch, and contain constraints that ignore
    pitch again, as in MapLibre GL JS.
  • A fix, independent of pitch: a tile whose URL matched an aborted load
    could show the aborted load's transparent image.
  • Tile level of detail on pitched maps: far tiles load at a coarser zoom,
    and only the tiles that cover the visible ground are loaded.
  • A sixth PR, which limits pitch near the horizon, will follow

MapOptions.maxPitch (default 0) allows pitch up to 60°. Ground layers
draw in perspective; markers and labels face the viewer. Adds
MapController.pitch and BillboardLayerTransformer.
@JaffaKetchup
JaffaKetchup changed the base branch from master to pitch-support October 25, 2026 22:45
@greensopinion

Copy link
Copy Markdown
Collaborator Author

Replaced by #2283, which has the same commit from a branch in this
repository, so that it can be the bottom of a stack with #2282. GitHub's
stacks can't include a PR from a fork.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant