viewof selection = {
const target = html`<div style="height:660px;">`;
yield target;
const map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: new ol.source.Vector({
format: new ol.format.GeoJSON()
})
})
],
target,
view: new ol.View({
center: ol.proj.fromLonLat([-77.29, 18.2]),
zoom: 7,
maxZoom: 8
})
});
target.value = [];
const select = new ol.interaction.Select();
select.on("select", event => {
target.value = select.getFeatures().getArray();
target.dispatchEvent(new CustomEvent("input"));
})
map.addInteraction(select);
invalidation.then(() => map.dispose());
return target;
}