forked from MapComplete/MapComplete
Themes(onwheels): statistics now don't show too much items, fix #2366
This commit is contained in:
parent
7b7c747fd6
commit
5adf43a335
2 changed files with 8 additions and 22 deletions
|
@ -25,22 +25,8 @@ export default class GeoIndexedStore implements FeatureSource {
|
|||
*/
|
||||
public GetFeaturesWithin(bbox: BBox): Feature[] {
|
||||
const bboxFeature = bbox.asGeojsonCached()
|
||||
return this.features.data.filter((f) => {
|
||||
if (f.geometry.type === "Point") {
|
||||
return bbox.contains(<[number, number]>f.geometry.coordinates)
|
||||
}
|
||||
if (f.geometry.type === "LineString") {
|
||||
const intersection = GeoOperations.intersect(
|
||||
BBox.get(f).asGeojsonCached(),
|
||||
bboxFeature
|
||||
)
|
||||
return intersection !== undefined
|
||||
}
|
||||
if (f.geometry.type === "Polygon" || f.geometry.type === "MultiPolygon") {
|
||||
return GeoOperations.intersect(f, bboxFeature) !== undefined
|
||||
}
|
||||
return GeoOperations.intersect(f, bboxFeature) !== undefined
|
||||
})
|
||||
return this.features.data.filter((f) =>
|
||||
GeoOperations.completelyWithin(f, bboxFeature))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
import { AccordionItem } from "flowbite-svelte"
|
||||
import ThemeViewState from "../../Models/ThemeViewState"
|
||||
import DefaultIcon from "../Map/DefaultIcon.svelte"
|
||||
import { Store } from "../../Logic/UIEventSource"
|
||||
|
||||
export let layer: LayerConfig
|
||||
export let state: ThemeViewState
|
||||
let bbox = state.mapProperties.bounds
|
||||
let elements: Feature[] = state.perLayer.get(layer.id).GetFeaturesWithin($bbox)
|
||||
$: elements = state.perLayer.get(layer.id).GetFeaturesWithin($bbox)
|
||||
let elements: Store<Feature[]> = bbox.mapD(bbox => state.perLayer.get(layer.id).GetFeaturesWithin(bbox))
|
||||
|
||||
let trs = layer.tagRenderings.filter((tr) => tr.question)
|
||||
</script>
|
||||
|
@ -31,19 +31,19 @@
|
|||
<DefaultIcon {layer} />
|
||||
</div>
|
||||
<Tr t={layer.name} />
|
||||
({elements.length} elements in view)
|
||||
({$elements.length} elements in view)
|
||||
</div>
|
||||
|
||||
{#if elements === undefined}
|
||||
{#if $elements === undefined}
|
||||
<Loading />
|
||||
{:else if elements.length === 0}
|
||||
{:else if $elements.length === 0}
|
||||
No features in view
|
||||
{:else}
|
||||
<div class="flex w-full flex-wrap gap-x-4 gap-y-4">
|
||||
{#each trs as tr}
|
||||
<ToSvelte
|
||||
construct={() =>
|
||||
new TagRenderingChart(elements, tr, {
|
||||
new TagRenderingChart($elements, tr, {
|
||||
chartclasses: "w-full self-center",
|
||||
includeTitle: true,
|
||||
}).SetClass(tr.multiAnswer ? "w-128" : "w-96")}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue