Skip to content

Allow closer city-scale camera framing without over-zooming at the start #45

Description

@mahlernim

Problem

Travel videos often contain dense movement within one city. Even after the adaptive long-hop camera work in #27, a compact urban route can remain visually close to a single point instead of revealing neighborhood-level movement.

The current camera modes have minimum viewport spans, and map tiles are capped at zoom level 15. Raising only the tile limit would not be enough because the viewport span also controls how close the camera can frame the route.

Proposed outcome

Allow the active journey camera to move closer when the visible route context is genuinely compact, while preserving useful geographic context at the beginning of the video.

This should be an adaptive framing change. It should not force every journey to start at the closest permitted zoom.

Acceptance criteria

  • A representative dense city journey visibly resolves movement within the city instead of appearing as a stationary point.
  • The first frame retains enough local context to orient the viewer and does not start at an extreme close-up solely because the first points are close together.
  • The camera can tighten after the journey begins when the active local route supports a closer view.
  • Close framing remains stable and does not introduce distracting zoom oscillation or frequent tile-level changes.
  • Long transfers and mixed city-and-flight journeys still widen before the transfer and recover after arrival.
  • Fixed, Steady, and Dynamic camera modes retain clearly distinct behavior.
  • The final Journey overview continues to fit the complete route.
  • Interactive preview, seeking, and exported video use the same camera track.
  • Android and the supported Python renderer remain aligned.
  • Automated tests cover a dense city route, the opening frames, and a mixed local-and-flight route.

Compatibility

Keep the current default camera mode and existing saved settings valid. No Timeline data or saved video migration should be required.

Related to #27, which addressed long hops keeping the camera wide for the entire video.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions