Skip to content

[FEATURE] Improve client annotation rendering #83

@jacksonjacobs1

Description

@jacksonjacobs1

Description

The current rendering approach does not perform equally across different zoom levels because:

  1. We render a greater number of WebGL features while zoomed out
  2. We render a greater number of points while zoomed out

A better rendering approach involves the following changes:

  1. Decouple each WebGL feature from a single tile (and tile id). Each WebGL feature should be capable of including annotations from multiple tiles within a group.

  2. GET Tile endpoints should accept a grouping_factor parameter, which causes a group_ids array to be returned.

    e.g.,
    Given a 4x4 tilegrid of ids 0-15, say we get all tiles, with grouping_factor set to 1 (defualt)

    resp.tile_ids = [0 - 15]
    resp.group_ids = [0 - 15]
    

    With grouping_factor set to 2:

    resp.tile_ids = [0 - 15]
    resp.group_ids = 
    [0,0,1,1,
    0,0,1,1,
    2,2,3,3,
    2,2,3,3]
    

    With grouping_factor set to 3:

    resp.tile_ids = [0 - 15]
    resp.group_ids = 
    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
    

    The client then only requests annotations for each unique group_id. Each group_id thus corresponds to a webgl feature.

  3. Create a new endpoint for getting annotations within multiple tiles. This endpoint should also accept a simplification threshold so that resulting polygons are simplified to reduce the number of points to render.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestv2.0Pertains to the v2.0 branch

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions