Skip to content

Commit dfce8dc

Browse files
committed
Refactor
1 parent 3559d62 commit dfce8dc

3 files changed

Lines changed: 22 additions & 19 deletions

File tree

marimo/box-selection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def _():
1717
def _(ol):
1818
data = "https://docs.mapbox.com/mapbox-gl-js/assets/earthquakes.geojson"
1919
# data = "https://github.com/visgl/deck.gl-data/raw/master/examples/line/airports.json"
20-
layer = ol.WebGLVectorLayer(
20+
layer = ol.VectorLayer(
2121
id="xyz",
2222
source=ol.sources.VectorSource(
2323
url=data,

src/openlayers/js/openlayers.anywidget.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

srcjs/ipywidget-ts/select-features.ts

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -85,26 +85,29 @@ function addBoxSelectionToMap(map: Map, model?: AnyModel): void {
8585
dragBox.on('boxend', function () {
8686
const extent = dragBox.getGeometry().transform('EPSG:3857', 'EPSG:4326').getExtent();
8787
console.log("box extent", extent);
88-
//
8988
for (let layer of map.getLayers().getArray()) {
90-
if (layer instanceof VectorLayer || layer instanceof WebGLVectorLayer) {
91-
const source: VectorSource = layer.getSource();
92-
console.log("source extend", source.getExtent());
93-
// const features = source.getFeaturesInExtent(extent).filter((feature: Feature) => feature?.getGeometry()?.intersectsExtent(extent));
94-
source.forEachFeatureIntersectingExtent(extent, (feature: Feature) => {
95-
feature.set("layer", layer.get("id"));
96-
selected.push(feature);
97-
if (layer instanceof VectorLayer) {
98-
feature.setStyle(highlightStyle);
99-
}
100-
});
101-
const output = selected.map(f => featureToGeoJSON(f));
102-
console.log("selected features", output);
103-
if (model) {
104-
model.set("features", { selected: output });
105-
model.save_changes();
89+
if (!(layer instanceof VectorLayer) && !(layer instanceof WebGLVectorLayer)) {
90+
console.log("skip layer", layer.get("id"));
91+
continue;
92+
}
93+
94+
const source: VectorSource = layer.getSource();
95+
console.log("source extend", source.getExtent());
96+
// const features = source.getFeaturesInExtent(extent).filter((feature: Feature) => feature?.getGeometry()?.intersectsExtent(extent));
97+
source.forEachFeatureIntersectingExtent(extent, (feature: Feature) => {
98+
feature.set("layer", layer.get("id"));
99+
selected.push(feature);
100+
if (layer instanceof VectorLayer) {
101+
feature.setStyle(highlightStyle);
106102
}
103+
});
104+
const output = selected.map(feature => featureToGeoJSON(feature));
105+
console.log("selected features", output);
106+
if (model) {
107+
model.set("features", { selected: output });
108+
model.save_changes();
107109
}
110+
// }
108111
}
109112
});
110113

0 commit comments

Comments
 (0)