maplair
Version:
JavaScript library for mobile-friendly interactive maps
40 lines (39 loc) • 1.17 kB
JavaScript
import { LatLngBounds } from "../geo/LatLngBounds.js";
import { LayerGroup } from "./LayerGroup.js";
//#region src/layer/FeatureGroup.js
var FeatureGroup = class FeatureGroup extends LayerGroup {
constructor(...args) {
super(...args);
this.callInitHooks(FeatureGroup);
}
addLayer(layer) {
if (this.hasLayer(layer)) return this;
layer.addEventParent(this);
super.addLayer(layer);
return this.fire("layeradd", { layer });
}
removeLayer(layer) {
if (!this.hasLayer(layer)) return this;
if (layer in this._layers) layer = this._layers[layer];
layer.removeEventParent(this);
super.removeLayer(layer);
return this.fire("layerremove", { layer });
}
setStyle(style) {
return this.eachLayer((l) => l.setStyle?.(style));
}
bringToFront() {
return this.eachLayer((l) => l.bringToFront?.());
}
bringToBack() {
return this.eachLayer((l) => l.bringToBack?.());
}
getBounds() {
const bounds = new LatLngBounds();
for (const layer of Object.values(this._layers)) bounds.extend(layer.getBounds ? layer.getBounds() : layer.getLatLng());
return bounds;
}
};
//#endregion
export { FeatureGroup };
//# sourceMappingURL=FeatureGroup.js.map