Add a contributor counting actor

This commit is contained in:
pietervdvn 2021-05-10 23:42:01 +02:00
parent 2a9faad288
commit f6cbb44454

21
Logic/ContributorCount.ts Normal file
View file

@ -0,0 +1,21 @@
/// Given a feature source, calculates a list of OSM-contributors who mapped the latest versions
import FeatureSource from "./FeatureSource/FeatureSource";
import {UIEventSource} from "./UIEventSource";
export default class ContributorCount {
public readonly Contributors: UIEventSource<Map<string, number>>;
constructor(featureSource: FeatureSource) {
this.Contributors = featureSource.features.map(features => {
const hist = new Map<string, number>();
for (const feature of features) {
const contributor = feature.feature.properties["_last_edit:contributor"]
const count = hist.get(contributor) ?? 0;
hist.set(contributor, count + 1)
}
return hist;
})
}
}