This PR migrates the client from using OpenLayers for map visualization to MapLibre-GL. Since the choice of map library permeates to many places in the codebase, this includes a lot of changes. Here are some notable changes:
To improve readability and reduce name collision, backend map layers in the client have been renamed to "DatasetLayers". Individual MapLibre layers retain the name "map layer".
Due to how maplibre works, each dataset layer likely uses multiple map layers to render (Line, Circle, Fill). This introduces some ambiguity in certain parts of the code, which can hopefully be ironed out later on.
The DatasetLayer.openlayer field has been removed.
The map tooltip has been re-worked substantially, to operate in a data driven way, instead of its HTML content being directly modified by multiple parts of the codebase.
Mouse event handlers have changed substantially, as with MapLibre, these are handled separately by each individual map layer. The result is that each layer, when clicked, makes a call to the event handler. If multiple layers are clicked at once, the one on top is chosen for display. This is the reason for the introduction of the clickedFeatureCandidates store object.
When performing network and GCC operations, a "Reset Network" button now appears in the right hand sidebar.
There are many more spots in the codebase that I'd like to refactor/improve, but doing so in this PR would be unnecessarily out of scope.
Closes #49
This PR migrates the client from using OpenLayers for map visualization to MapLibre-GL. Since the choice of map library permeates to many places in the codebase, this includes a lot of changes. Here are some notable changes:
DatasetLayer.openlayer
field has been removed.clickedFeatureCandidates
store object.There are many more spots in the codebase that I'd like to refactor/improve, but doing so in this PR would be unnecessarily out of scope.