Skip to content

Commit f90e8d6

Browse files
authored
Merge pull request #260 from pasieronen/fix/for-each-callback-result
Use callback return value correctly in forEachFeatureAtCoordinate
2 parents 994fdba + f4bfefb commit f90e8d6

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/MapLibreLayerRenderer.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,17 @@ export default class MapLibreLayerRenderer extends LayerRenderer<MapLibreLayer>
116116
callback: FeatureCallback<Feature>,
117117
): Feature | undefined {
118118
const features = this.getFeaturesAtCoordinate(coordinate, hitTolerance);
119-
features.forEach((feature) => {
119+
let result;
120+
for (const feature of features) {
120121
const geometry = feature.getGeometry();
121122
if (geometry instanceof SimpleGeometry) {
122-
callback(feature, this.getLayer(), geometry);
123+
result = callback(feature, this.getLayer(), geometry);
124+
if (result) {
125+
return result;
126+
}
123127
}
124-
});
125-
return features?.[0] as Feature;
128+
}
129+
return result;
126130
}
127131

128132
private getMapLibrePixels(

0 commit comments

Comments
 (0)