Skip to content

Decouple map sources and layers #3447

@kylecorry31

Description

@kylecorry31

The layers should act almost entirely as a pass through with the hope that each source doesn't actually need a layer defined (like what is expected of plugin layers).

  • Pass preferences to load method
  • Look up source definitions before loading the map (will be needed to construct layers anyway) and move the following parameters there:
    • Should multiply (blend mode)
    • Is time dependent
    • Min/max zoom levels
    • Refresh interval
    • Refresh broadcasts (for below beacon/path/navigation decoupling)
    • Cache key format string (with preferences as format args?) (for below cache key decoupling)
  • Pass context to sources
  • Determine how to decouple beacon/path/navigation layers from the data updates (maybe specify broadcasts it listens to, just like widgets)
  • Layer level preferences (move into GeoJsonLayer/TileMapLayer):
    • Show labels
    • Path background color
  • Photo map layer should pass ID along as preference
  • Determine how to construct cache key for tiles (maybe just move that to the source) or have the source definition have a cache key format string
  • Make MyLocationGeoJsonSource responsible for its own bitmap creation
  • Tools register sources rather than layers (MapLayerDefinition -> MapSourceDefinition and layers are automatically constructed)
  • Update plugin documentation
  • Consider replacing open feature with a tool action invocation (ex. invoke action, passes along ID)
  • Replace source definition create with class reference (no parameters should be needed)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions