Skip to content

Improvement of image layer level of details calculation #60

Open
@EMaksymenko

Description

@EMaksymenko

Description

Current approach of details control in TiledImageLayer is based on camera distance to surface and horizontal field of view, but it does not provide stable pixel density of tiles comparing to monitor pixel density (as it usually appears on 2d maps).

I propose to make needToSplit approach from MercatorTiledImageLayer a default approach for any TiledImageLayer. Also I propose to refactor camera calculations to use vertical field of view instead of horizontal.

Actual behavior:
When you resize WordWind window horizontally tile level of details remains unchanged, but from user perspective every tile become using more or less pixels on the screen, because overall window width become wider or narrower displaying the same amount of tiles. This cause tile surface text and other tile elements to have different size depending on window size. Sometimes it make situation when text and other details are too small and unreadable. Sometimes they are too big and looks blur.

Expected behavior:
Web and Android version of WorldWind library provides other better approach. This approach is also implemented in Java MercatorTiledImageLayer and it compare tile pixel density to user monitor pixel density respecting window size and change details during window resizing to have more or less stable tile pixel density in any window size. This approach provides stable text size and other tile elements size. Furthermore, Web and Android libraries base its camera calculations on vertical field of view (not horizontal). This allows to resize window horizontally without change of details simply by changing horizontal field of view during window resize (keeping vertical FOV unchanged). Horizontal resize is more frequent then vertical in horizontal displays.

Steps to Reproduce

Choose any text or other element on the map to be a test object.
Resize worldwind horizontally and see how test object will change its size on the screen.
You will see that details will not change causing text object to become very small and unreadable or very large and blurry.

Reproduces how often:
Always.

Operating System and Version

Any

Additional Information

Try to do same test on WebWorldWind on MercatorLayer an you will see how comfortable to have correct level of details switching.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions