Skip to content

Commit

Permalink
added child node layer which is hidden by default to circuit viewer t…
Browse files Browse the repository at this point in the history
…o slightly increase performance for extremely large circuits
  • Loading branch information
ASC95 committed Feb 27, 2024
1 parent 05c8dcc commit a8ede68
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
13 changes: 11 additions & 2 deletions omf/static/geoJsonMap/v3/leafletLayer.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class LeafletLayer { // implements ObserverInterface
static map;
static nodeLayers = L.featureGroup();
static parentChildLineLayers = L.featureGroup();
static childNodeLayers = L.featureGroup();

/**
* @param {Feature} observable - an ObservableInterface instance
Expand Down Expand Up @@ -89,7 +90,11 @@ class LeafletLayer { // implements ObserverInterface
layer.remove();
// - Need to explicitly remove the underlying layer from its LayerGroup
if (observable.isNode()) {
LeafletLayer.nodeLayers.removeLayer(this.#layer);
if (observable.isChild()) {
LeafletLayer.childNodeLayers.removeLayer(this.#layer);
} else {
LeafletLayer.nodeLayers.removeLayer(this.#layer);
}
} else if (observable.isLine()) {
if (observable.isParentChildLine()) {
LeafletLayer.parentChildLineLayers.removeLayer(this.#layer);
Expand Down Expand Up @@ -172,7 +177,11 @@ class LeafletLayer { // implements ObserverInterface
}
const ll = new LeafletLayer(observable, controller);
if (observable.isNode()) {
LeafletLayer.nodeLayers.addLayer(ll.getLayer());
if (observable.isChild()) {
LeafletLayer.childNodeLayers.addLayer(ll.getLayer());
} else {
LeafletLayer.nodeLayers.addLayer(ll.getLayer());
}
} else if (observable.isLine()) {
if (observable.isParentChildLine()) {
LeafletLayer.parentChildLineLayers.addLayer(ll.getLayer());
Expand Down
3 changes: 2 additions & 1 deletion omf/static/geoJsonMap/v3/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ function main() {
};
const overlayMaps = {
'Nodes': LeafletLayer.nodeLayers,
'Child Nodes': LeafletLayer.childNodeLayers,
'Lines': LeafletLayer.lineLayers,
'Parent-Child Lines': LeafletLayer.parentChildLineLayers,
}
Expand All @@ -75,7 +76,7 @@ function main() {
// - This zoom level sensibly displays all circuits to start, even the ones with weird one-off players that skew where the center is
zoom: 14,
// - Provide the layers that the map should start with
layers: [esri_satellite_layer, LeafletLayer.nodeLayers, LeafletLayer.lineLayers, LeafletLayer.parentChildLineLayers],
layers: [esri_satellite_layer, LeafletLayer.nodeLayers, LeafletLayer.lineLayers],
// - Better performance for large datasets
renderer: L.canvas()
});
Expand Down

0 comments on commit a8ede68

Please sign in to comment.