Skip to content

Extreme zoom levels #1179

@manthey

Description

@manthey

Currently, the maximum zoom range is limited by using double-precision floating point for tracking map and feature locations. Specifically, when zoomed over around 40 power-of-two zoom levels, the position starts to have jitter. This is due to the limited mantissa (significand) size of doubles (53 bits), where the zoom level and size of the display port combine to where the precision breaks down.

This could probably be solved by having all features, layers, and the map use a higher precision math library to track origins. Features that genuinely span more than 40+ levels (such as deep tile sets) would need to have localized position logic. Other features might sensibly have a specified range for which they are relevant. Position accessors would either need to take the origin into account or there would by an alternative "positionWithOrigin" accessor which would default to "position() - origin", or something similar.

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