|
|
@@ -8,13 +8,16 @@ import {Geometry} from 'ol/geom';
|
|
|
import {Vector as VectorLayer} from 'ol/layer';
|
|
|
import {Vector as VectorSource} from 'ol/source';
|
|
|
|
|
|
-import {HsConfig} from 'hslayers-ng';
|
|
|
-import {HsEventBusService} from 'hslayers-ng';
|
|
|
-import {HsLanguageService} from 'hslayers-ng';
|
|
|
-import {HsLayoutService} from 'hslayers-ng';
|
|
|
-//import {HsMapService} from 'hslayers-ng/components/map/map.service';
|
|
|
-import {HsPanelContainerService} from 'hslayers-ng';
|
|
|
-import {HsSidebarService} from 'hslayers-ng';
|
|
|
+import {
|
|
|
+ HsConfig,
|
|
|
+ HsEventBusService,
|
|
|
+ HsLanguageService,
|
|
|
+ HsLayoutService,
|
|
|
+ //HsMapService,
|
|
|
+ HsPanelContainerService,
|
|
|
+ HsSidebarService,
|
|
|
+ HsToastService,
|
|
|
+} from 'hslayers-ng';
|
|
|
|
|
|
import {AdjusterComponent} from './adjuster/adjuster.component';
|
|
|
import {AdjusterEventService} from './adjuster/adjuster-event.service';
|
|
|
@@ -57,7 +60,8 @@ export class AppService {
|
|
|
public hsLayoutService: HsLayoutService,
|
|
|
//public hsMapService: HsMapService,
|
|
|
public hsPanelContainerService: HsPanelContainerService,
|
|
|
- public hsSidebarService: HsSidebarService
|
|
|
+ public hsSidebarService: HsSidebarService,
|
|
|
+ public hsToastService: HsToastService
|
|
|
) {
|
|
|
this.hsSidebarService.buttons.push({
|
|
|
panel: 'adjuster',
|
|
|
@@ -81,7 +85,6 @@ export class AppService {
|
|
|
this.init();
|
|
|
});
|
|
|
this.hsEventBus.olMapLoads.subscribe(() => {
|
|
|
- console.log('olMap loaded');
|
|
|
this.ensureLayerIsLoaded(nuts3IndexLayer);
|
|
|
for (const method of this.adjusterService.methods) {
|
|
|
this.ensureLayerIsLoaded(method.layer);
|
|
|
@@ -122,17 +125,24 @@ export class AppService {
|
|
|
* Create separate layer fo each clustering method and add it to default_layers
|
|
|
*/
|
|
|
prepareLayers(): void {
|
|
|
- console.log('loading layers...');
|
|
|
for (const method of this.adjusterService.methods) {
|
|
|
method.layer = new VectorLayer({
|
|
|
properties: {
|
|
|
editor: {editable: false},
|
|
|
- queryable: false,
|
|
|
+ //queryable: false,
|
|
|
autoLegend: false,
|
|
|
title: `NUTS3 regions: ${method.name.replace(
|
|
|
/\((.+?)\)/g,
|
|
|
''
|
|
|
)} clusters`,
|
|
|
+ popUp: {
|
|
|
+ attributes: [
|
|
|
+ {
|
|
|
+ attribute: method.codename,
|
|
|
+ label: 'Cluster ID',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
},
|
|
|
source: new VectorSource({
|
|
|
//features: new GeoJSON().readFeatures(nuts3).map((f) => f.clone()),
|
|
|
@@ -144,19 +154,21 @@ export class AppService {
|
|
|
style: this.generateStyle(method.codename),
|
|
|
});
|
|
|
method.layer.getSource().on('featuresloadend', () => {
|
|
|
- console.log(`featuresloadend of ${method.codename}`);
|
|
|
this.adjusterEventService.layerReady.next({name: method.codename});
|
|
|
});
|
|
|
- method.layer.getSource().on('featuresloadstart', () => {
|
|
|
- console.log(`loadstart of ${method.codename}`);
|
|
|
- });
|
|
|
- method.layer.getSource().on('featuresloaderror', () => {
|
|
|
+ method.layer.getSource().on('featuresloaderror', (evt) => {
|
|
|
+ this.hsToastService.createToastPopupMessage(
|
|
|
+ 'Error loading layer',
|
|
|
+ // eslint-disable-next-line prettier/prettier
|
|
|
+ `The layer ${
|
|
|
+ (evt.target as VectorSource<Geometry>).get('title')
|
|
|
+ // eslint-disable-next-line prettier/prettier
|
|
|
+ } could not be loaded`,
|
|
|
+ {toastStyleClasses: 'bg-danger text-light'}
|
|
|
+ );
|
|
|
console.log('evil shit');
|
|
|
});
|
|
|
AppConfig.default_layers.push(method.layer as any);
|
|
|
- console.log(
|
|
|
- `layer for method ${method.codename} (${method.name}) created`
|
|
|
- );
|
|
|
}
|
|
|
/* The order of pushes matter! */
|
|
|
AppConfig.default_layers.push(nuts3IndexLayer as any);
|
|
|
@@ -190,7 +202,6 @@ export class AppService {
|
|
|
];
|
|
|
this.pilotRegions.set('queryable', false);
|
|
|
this.hsConfig.update(AppConfig);
|
|
|
- console.log('layers preapared');
|
|
|
}
|
|
|
|
|
|
/**
|