Add toggle to disable squares on low zoom levels, fix maxzoom property

This commit is contained in:
Pieter Vander Vennet 2021-10-13 00:43:19 +02:00
parent 6330bd5bfd
commit 9e7dec0101
5 changed files with 43 additions and 24 deletions

View file

@ -237,6 +237,12 @@ export interface LayoutConfigJson {
* If clustering is defined, defaults to 25
*/
minNeededElements?: number
/**
* By default, a box is shown indicating the number of features even if the map is zoomed out beyond the minzoom of the layer.
* This flag switches this behaviour to not show these boxes.
*/
hideClustersAboveMinZoom?: boolean;
},
/**
@ -253,7 +259,7 @@ export interface LayoutConfigJson {
* If set to [[lat0, lon0], [lat1, lon1]], the map will not scroll outside of those bounds.
* Off by default, which will enable panning to the entire world
*/
lockLocation?: boolean | [[number, number], [number, number]];
lockLocation?: boolean | [[number, number], [number, number]] | number[][];
enableUserBadge?: boolean;
enableShareScreen?: boolean;

View file

@ -30,7 +30,8 @@ export default class LayoutConfig {
public layers: LayerConfig[];
public readonly clustering?: {
maxZoom: number,
minNeededElements: number
minNeededElements: number,
hideClustersAboveMinzoom: boolean
};
public readonly hideFromOverview: boolean;
public lockLocation: boolean | [[number, number], [number, number]];
@ -139,12 +140,14 @@ export default class LayoutConfig {
this.clustering = {
maxZoom: 16,
minNeededElements: 25
minNeededElements: 25,
hideClustersAboveMinzoom: false
};
if (json.clustering) {
this.clustering = {
maxZoom: json.clustering.maxZoom ?? 18,
minNeededElements: json.clustering.minNeededElements ?? 25
minNeededElements: json.clustering.minNeededElements ?? 25,
hideClustersAboveMinzoom: json.clustering.hideClustersAboveMinZoom ?? false
}
}
@ -153,7 +156,7 @@ export default class LayoutConfig {
if (json.hideInOverview) {
throw "The json for " + this.id + " contains a 'hideInOverview'. Did you mean hideFromOverview instead?"
}
this.lockLocation = json.lockLocation ?? undefined;
this.lockLocation = <[[number, number], [number, number]]> json.lockLocation ?? undefined;
this.enableUserBadge = json.enableUserBadge ?? true;
this.enableShareScreen = json.enableShareScreen ?? true;
this.enableMoreQuests = json.enableMoreQuests ?? true;