@kadaster/ggc-models 0.0.7 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,31 +3,43 @@
3
3
  De Generieke Geo Componenten (GGC) helpen softwareontwikkelaars om snel een kaartviewer te ontwikkelen.
4
4
 
5
5
  Deze Angular front-end componenten kunnen in de eigen applicatie geïnstalleerd worden. Hiermee kan de kracht van OpenLayers kaartpresentatie snel en eenvoudig geïmplementeerd worden, gecombineerd met:
6
- * zoeken op de kaart
7
- * legenda
8
- * kaartselectie
9
- * toolbar met tekenen, meten en bewerken op de kaart
6
+
7
+ - zoeken op de kaart
8
+ - legenda
9
+ - kaartweergave kiezen
10
+ - toolbar met tekenen, meten en bewerken op de kaart
10
11
 
11
12
  Binnenkort komen ook extra componenten beschikbaar voor:
12
- * presenteren van object-informatie
13
- * 3D kaartpresentatie (met Cesium)
14
- * printen
15
- * bestandsconversie
13
+
14
+ - presenteren van object-informatie
15
+ - 3D kaartpresentatie (met Cesium)
16
+ - printen
17
+ - bestandsconversie
16
18
 
17
19
  ## Voordelen
18
20
 
19
21
  De Generieke Geo Componenten bieden de volgende voordelen:
20
- * Responsive design voor mobiel, tablet en desktop
21
- * Digitaal toegankelijk (WCAG 2.1 AA)
22
- * Up-to-date met de nieuwste framework versies
23
- * Eenvoudig te implementeren, te configureren en te stylen
24
- * Makkelijk aan te passen
25
- * Robuust, met hoge testdekking
26
- * Lage onderhoudsinspanning
27
- * Light-weight, door alleen componenten te laden die nodig zijn
22
+
23
+ - Responsive design voor mobiel, tablet en desktop
24
+ - Digitaal toegankelijk (WCAG 2.1 AA)
25
+ - Up-to-date met de nieuwste framework versies
26
+ - Eenvoudig te implementeren, te configureren en te stylen
27
+ - Makkelijk aan te passen
28
+ - Robuust, met hoge testdekking
29
+ - Lage onderhoudsinspanning
30
+ - Light-weight, door alleen componenten te laden die nodig zijn
28
31
 
29
32
  De componenten kunnen afzonderlijk óf in samenwerking gebruikt worden. Hierdoor kun je zelf bepalen welke interactie wenselijk is in de applicatie.
30
33
 
34
+ ## Lijst van componenten
35
+
36
+ - [@kadaster/ggc-dataset-tree](https://www.npmjs.com/package/@kadaster/ggc-dataset-tree)
37
+ - [@kadaster/ggc-legend](https://www.npmjs.com/package/@kadaster/ggc-legend)
38
+ - [@kadaster/ggc-map](https://www.npmjs.com/package/@kadaster/ggc-map)
39
+ - [@kadaster/ggc-models](https://www.npmjs.com/package/@kadaster/ggc-models)
40
+ - [@kadaster/ggc-search-location](https://www.npmjs.com/package/@kadaster/ggc-search-location)
41
+ - [@kadaster/ggc-toolbar](https://www.npmjs.com/package/@kadaster/ggc-toolbar)
42
+
31
43
  ## Licentie
32
44
 
33
45
  Dit project is gratis en open-source software, gelicentieerd onder de [European Union Public License (EUPL) v1.2](LICENSE.md).
@@ -6,6 +6,13 @@ const DEFAULT_MAPINDEX = "_DEFAULT_";
6
6
  * De default mapIndex die wordt gebruikt in 3D kaarten (Cesium)
7
7
  */
8
8
  const DEFAULT_CESIUM_MAPINDEX = "_DEFAULT_CESIUM_";
9
+ /**
10
+ * Proj4-definitie voor het RD New
11
+ * coördinaten referentiesysteem (EPSG:28992).
12
+ *
13
+ * Wordt gebruikt voor projectie-registratie in OpenLayers.
14
+ */
15
+ const defs = "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +units=m +no_defs";
9
16
 
10
17
  var LayerChangedEventTrigger;
11
18
  (function (LayerChangedEventTrigger) {
@@ -13,13 +20,6 @@ var LayerChangedEventTrigger;
13
20
  LayerChangedEventTrigger["LAYER_REMOVED"] = "layerRemoved";
14
21
  })(LayerChangedEventTrigger || (LayerChangedEventTrigger = {}));
15
22
 
16
- // todo deze kan er volgensmij uit in de ggc-legend story (een vector style wordt een svg wat een url is)
17
- class VectorTileStyle {
18
- constructor(name, url) {
19
- this.name = name;
20
- this.url = url;
21
- }
22
- }
23
23
  /**
24
24
  * Enum voor de triggers van een legend event.
25
25
  * Added en removed worden getriggered bij het aan/uitzetten van een laag in bijvoorbeel de dataset-tree
@@ -73,6 +73,40 @@ var Webservice3DType;
73
73
  Webservice3DType["TILES3D"] = "3Dtiles";
74
74
  })(Webservice3DType || (Webservice3DType = {}));
75
75
 
76
+ class ObservableMapWrapper {
77
+ constructor(create) {
78
+ this.map = new Map();
79
+ this.create = create;
80
+ }
81
+ get size() {
82
+ return this.map.size;
83
+ }
84
+ getOrCreate(name) {
85
+ if (!this.map.has(name)) {
86
+ const subject = this.create();
87
+ this.map.set(name, { subject, observable: subject.asObservable() });
88
+ }
89
+ return this.map.get(name);
90
+ }
91
+ getOrCreateSubject(name) {
92
+ const map = this.getOrCreate(name);
93
+ return map.subject;
94
+ }
95
+ getOrCreateObservable(name) {
96
+ const map = this.getOrCreate(name);
97
+ return map.observable;
98
+ }
99
+ get(name) {
100
+ return this.map.get(name);
101
+ }
102
+ has(name) {
103
+ return this.map.has(name);
104
+ }
105
+ delete(name) {
106
+ return this.map.delete(name);
107
+ }
108
+ }
109
+
76
110
  /*
77
111
  * Public API Surface of ggc-models
78
112
  */
@@ -81,5 +115,5 @@ var Webservice3DType;
81
115
  * Generated bundle index. Do not edit.
82
116
  */
83
117
 
84
- export { DEFAULT_CESIUM_MAPINDEX, DEFAULT_MAPINDEX, LayerChangedEventTrigger, LegendAddedEvent, LegendEventTrigger, LegendRemovedEvent, VectorTileStyle, ViewerType, Webservice2DType, Webservice3DType };
118
+ export { DEFAULT_CESIUM_MAPINDEX, DEFAULT_MAPINDEX, LayerChangedEventTrigger, LegendAddedEvent, LegendEventTrigger, LegendRemovedEvent, ObservableMapWrapper, ViewerType, Webservice2DType, Webservice3DType, defs };
85
119
  //# sourceMappingURL=kadaster-ggc-models.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"kadaster-ggc-models.mjs","sources":["../../../projects/ggc-models/src/lib/constants.ts","../../../projects/ggc-models/src/lib/models/layer-changed-event.model.ts","../../../projects/ggc-models/src/lib/models/legend.model.ts","../../../projects/ggc-models/src/lib/models/viewer-type.model.ts","../../../projects/ggc-models/src/lib/models/webservice-type.model.ts","../../../projects/ggc-models/src/public-api.ts","../../../projects/ggc-models/src/kadaster-ggc-models.ts"],"sourcesContent":["/**\n * De default mapIndex die wordt gebruikt in 2D kaarten\n */\nexport const DEFAULT_MAPINDEX = \"_DEFAULT_\";\n\n/**\n * De default mapIndex die wordt gebruikt in 3D kaarten (Cesium)\n */\nexport const DEFAULT_CESIUM_MAPINDEX = \"_DEFAULT_CESIUM_\";\n","export enum LayerChangedEventTrigger {\n LAYER_ADDED = \"layerAdded\",\n LAYER_REMOVED = \"layerRemoved\"\n}\n\nexport interface CesiumLayerChangedEvent {\n layerId: string;\n eventTrigger: LayerChangedEventTrigger;\n}\n\nexport interface LayerChangedEvent extends CesiumLayerChangedEvent {\n mapIndex: string;\n}\n","/**\n * Mogelijke typen voor een legenda:\n * - Een lijst van iconen met tekst (`IconList[]`)\n * - Een URL naar een legenda-afbeelding (`LegendUrl`)\n * - Een mapbox vector tile stijl (`VectorTileStyle`)\n * - Of `undefined` als er geen legenda is.\n */\nexport type LegendType = IconList[] | LegendUrl | VectorTileStyle | undefined;\n\n/**\n * Legenda-informatie voor een specifieke laag.\n */\nexport type LayerLegend = {\n /** De layerId van deze legenda **/\n layerId: string;\n\n /** De legenda behorend bij deze laag. */\n legend: LegendType;\n\n /**\n * De naam van de service waar deze lagen in zitten, mocht er een serviceName aanwezig zijn.\n * Met deze naam wordt de legenda gegroepeerd en de serviceName staat dan boven de groepering\n * **/\n serviceTitle?: string;\n\n /** De titel van deze laag **/\n layerTitle?: string;\n\n /** True als de layer voor deze legenda is enabled. Als de layer is disabled, wordt de legenda ook niet getoond. **/\n layerEnabled?: boolean;\n\n /** nummer om de volgorde in de legenda te bepalen */\n legendIndex?: number;\n};\n\n/**\n * Een item in een iconenlijst voor de legenda.\n */\nexport type IconList = {\n /** URL naar het icoon-afbeelding. */\n imageUrl: string;\n\n /** Beschrijvende tekst bij het icoon. */\n text: string;\n};\n\n/**\n * Een URL naar een externe legenda-afbeelding.\n */\nexport type LegendUrl = {\n /** Volledige URL naar de legenda-afbeelding. */\n legendUrl: string;\n};\n\n// todo deze kan er volgensmij uit in de ggc-legend story (een vector style wordt een svg wat een url is)\nexport class VectorTileStyle {\n name: string;\n url: string;\n\n constructor(name: string, url: string) {\n this.name = name;\n this.url = url;\n }\n}\n\n/**\n * Enum voor de triggers van een legend event.\n * Added en removed worden getriggered bij het aan/uitzetten van een laag in bijvoorbeel de dataset-tree\n * Enabled en disabled worden getriggered als een kaartlaag wel of niet zichtbaar wordt bij het zoomen\n */\nexport enum LegendEventTrigger {\n ON_LAYER_ADDED = \"onLayerAdded\",\n ON_LAYER_REMOVED = \"onLayerRemoved\",\n ON_LAYER_ENABLED = \"onLayerEnabled\",\n ON_LAYER_DISABLED = \"onLayerDisabled\"\n}\n\n/**\n * Het event dat wordt ge-emit als een legenda moet worden toegevoegd\n */\nexport class LegendAddedEvent {\n /** De mapIndex waar de legenda moet worden toegevoegd **/\n mapIndex: string;\n /** De legenda die moet worden toegevoegd **/\n legend?: LayerLegend;\n}\n\n/**\n * Het event dat wordt ge-emit als een legenda moet worden weggehaald\n */\nexport class LegendRemovedEvent {\n /** De mapIndex waar de legenda moet worden verwijderd **/\n mapIndex: string;\n /** De layerId waar vand de legenda die moet worden verwijderd **/\n layerId: string;\n}\n","/**\n * De enum die het viewertype aangeeft TWEE_D (default = ol) of DRIE_D (cesium).\n */\nexport enum ViewerType {\n DRIE_D = \"3D\",\n TWEE_D = \"2D\"\n}\n","/**\n * De enum die de 2D webservices bevat.\n */\nexport enum Webservice2DType {\n WMS = \"wms\",\n WMTS = \"wmts\",\n GEOJSON = \"geojson\",\n VECTOR = \"vector\",\n IMAGE = \"image\"\n}\n\n/**\n * De enum die de 3D webservices bevat.\n */\nexport enum Webservice3DType {\n WMTS = \"wmts\",\n GEOJSON = \"geojson\",\n TILES3D = \"3Dtiles\"\n}\n","/*\n * Public API Surface of ggc-models\n */\n\nexport * from \"./lib/constants\";\nexport * from \"./lib/models/layer-changed-event.model\";\nexport * from \"./lib/models/legend.model\";\nexport * from \"./lib/models/viewer-type.model\";\nexport * from \"./lib/models/webservice-type.model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG;AACI,MAAM,gBAAgB,GAAG;AAEhC;;AAEG;AACI,MAAM,uBAAuB,GAAG;;ICR3B;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B;AAC1B,IAAA,wBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B;AAChC,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;;ACsDpC;MACa,eAAe,CAAA;IAI1B,WAAA,CAAY,IAAY,EAAE,GAAW,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IAChB;AACD;AAED;;;;AAIG;IACS;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,cAA+B;AAC/B,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC;AACnC,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC;AACnC,IAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,iBAAqC;AACvC,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;AAO9B;;AAEG;MACU,gBAAgB,CAAA;AAK5B;AAED;;AAEG;MACU,kBAAkB,CAAA;AAK9B;;AC/FD;;AAEG;IACS;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,IAAa;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,IAAa;AACf,CAAC,EAHW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;ACHtB;;AAEG;IACS;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;AAQ5B;;AAEG;IACS;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;;ACd5B;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"kadaster-ggc-models.mjs","sources":["../../../projects/ggc-models/src/lib/constants.ts","../../../projects/ggc-models/src/lib/models/layer-changed-event.model.ts","../../../projects/ggc-models/src/lib/models/legend.model.ts","../../../projects/ggc-models/src/lib/models/viewer-type.model.ts","../../../projects/ggc-models/src/lib/models/webservice-type.model.ts","../../../projects/ggc-models/src/lib/utils/ObservableMapWrapper.ts","../../../projects/ggc-models/src/public-api.ts","../../../projects/ggc-models/src/kadaster-ggc-models.ts"],"sourcesContent":["/**\n * De default mapIndex die wordt gebruikt in 2D kaarten\n */\nexport const DEFAULT_MAPINDEX = \"_DEFAULT_\";\n\n/**\n * De default mapIndex die wordt gebruikt in 3D kaarten (Cesium)\n */\nexport const DEFAULT_CESIUM_MAPINDEX = \"_DEFAULT_CESIUM_\";\n\n/**\n * Proj4-definitie voor het RD New\n * coördinaten referentiesysteem (EPSG:28992).\n *\n * Wordt gebruikt voor projectie-registratie in OpenLayers.\n */\nexport const defs =\n \"+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +units=m +no_defs\";\n","export enum LayerChangedEventTrigger {\n LAYER_ADDED = \"layerAdded\",\n LAYER_REMOVED = \"layerRemoved\"\n}\n\nexport interface CesiumLayerChangedEvent {\n layerId: string;\n eventTrigger: LayerChangedEventTrigger;\n}\n\nexport interface LayerChangedEvent extends CesiumLayerChangedEvent {\n mapIndex: string;\n}\n","/**\n * Mogelijke typen voor een legenda:\n * - Een lijst van iconen met tekst (`IconList[]`)\n * - Een URL naar een legenda-afbeelding (`LegendUrl`)\n * - Een mapbox vector tile stijl (`VectorTileStyle`)\n * - Of `undefined` als er geen legenda is.\n */\nexport type LegendType = IconList[] | LegendUrl | undefined;\n\n/**\n * Legenda-informatie voor een specifieke laag.\n */\nexport type LayerLegend = {\n /** De layerId van deze legenda **/\n layerId: string;\n\n /** De legenda behorend bij deze laag. */\n legend: LegendType;\n\n /**\n * De naam van de service waar deze lagen in zitten, mocht er een serviceName aanwezig zijn.\n * Met deze naam wordt de legenda gegroepeerd en de serviceName staat dan boven de groepering\n * **/\n serviceTitle?: string;\n\n /** De titel van deze laag **/\n layerTitle?: string;\n\n /** True als de layer voor deze legenda is enabled. Als de layer is disabled, wordt de legenda ook niet getoond. **/\n layerEnabled?: boolean;\n\n /** nummer om de volgorde in de legenda te bepalen */\n legendIndex?: number;\n};\n\n/**\n * Een item in een iconenlijst voor de legenda.\n */\nexport type IconList = {\n /** URL naar het icoon-afbeelding. */\n imageUrl: string;\n\n /** Beschrijvende tekst bij het icoon. */\n text: string;\n};\n\n/**\n * Een URL naar een externe legenda-afbeelding.\n */\nexport type LegendUrl = {\n /** Volledige URL naar de legenda-afbeelding. */\n legendUrl: string;\n};\n\n/**\n * Enum voor de triggers van een legend event.\n * Added en removed worden getriggered bij het aan/uitzetten van een laag in bijvoorbeel de dataset-tree\n * Enabled en disabled worden getriggered als een kaartlaag wel of niet zichtbaar wordt bij het zoomen\n */\nexport enum LegendEventTrigger {\n ON_LAYER_ADDED = \"onLayerAdded\",\n ON_LAYER_REMOVED = \"onLayerRemoved\",\n ON_LAYER_ENABLED = \"onLayerEnabled\",\n ON_LAYER_DISABLED = \"onLayerDisabled\"\n}\n\n/**\n * Het event dat wordt ge-emit als een legenda moet worden toegevoegd\n */\nexport class LegendAddedEvent {\n /** De mapIndex waar de legenda moet worden toegevoegd **/\n mapIndex: string;\n /** De legenda die moet worden toegevoegd **/\n legend?: LayerLegend;\n}\n\n/**\n * Het event dat wordt ge-emit als een legenda moet worden weggehaald\n */\nexport class LegendRemovedEvent {\n /** De mapIndex waar de legenda moet worden verwijderd **/\n mapIndex: string;\n /** De layerId waar vand de legenda die moet worden verwijderd **/\n layerId: string;\n}\n","/**\n * De enum die het viewertype aangeeft TWEE_D (default = ol) of DRIE_D (cesium).\n */\nexport enum ViewerType {\n DRIE_D = \"3D\",\n TWEE_D = \"2D\"\n}\n","/**\n * De enum die de 2D webservices bevat.\n */\nexport enum Webservice2DType {\n WMS = \"wms\",\n WMTS = \"wmts\",\n GEOJSON = \"geojson\",\n VECTOR = \"vector\",\n IMAGE = \"image\"\n}\n\n/**\n * De enum die de 3D webservices bevat.\n */\nexport enum Webservice3DType {\n WMTS = \"wmts\",\n GEOJSON = \"geojson\",\n TILES3D = \"3Dtiles\"\n}\n","import { Observable } from \"rxjs\";\n\ninterface ObservableMap<O> {\n subject: SubjectLike<O>;\n observable: Observable<O>;\n}\n\ninterface SubjectLike<O> extends Observable<O> {\n asObservable(): Observable<O>;\n\n next(val: O): void;\n}\n\nexport class ObservableMapWrapper<K, O> {\n private readonly create: () => SubjectLike<O>;\n private readonly map: Map<K, ObservableMap<O>>;\n\n constructor(create: () => SubjectLike<O>) {\n this.map = new Map<K, ObservableMap<O>>();\n this.create = create;\n }\n\n get size(): number {\n return this.map.size;\n }\n\n getOrCreate(name: K): ObservableMap<O> {\n if (!this.map.has(name)) {\n const subject = this.create();\n this.map.set(name, { subject, observable: subject.asObservable() });\n }\n return this.map.get(name) as ObservableMap<O>;\n }\n\n getOrCreateSubject(name: K): SubjectLike<O> {\n const map = this.getOrCreate(name);\n return map.subject;\n }\n\n getOrCreateObservable(name: K): Observable<O> {\n const map = this.getOrCreate(name);\n return map.observable;\n }\n\n get(name: K): ObservableMap<O> | undefined {\n return this.map.get(name);\n }\n\n has(name: K): boolean {\n return this.map.has(name);\n }\n\n delete(name: K): boolean {\n return this.map.delete(name);\n }\n}\n","/*\n * Public API Surface of ggc-models\n */\n\nexport * from \"./lib/constants\";\nexport * from \"./lib/models/layer-changed-event.model\";\nexport * from \"./lib/models/legend.model\";\nexport * from \"./lib/models/viewer-type.model\";\nexport * from \"./lib/models/webservice-type.model\";\nexport * from \"./lib/utils/ObservableMapWrapper\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG;AACI,MAAM,gBAAgB,GAAG;AAEhC;;AAEG;AACI,MAAM,uBAAuB,GAAG;AAEvC;;;;;AAKG;AACI,MAAM,IAAI,GACf;;ICjBU;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B;AAC1B,IAAA,wBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B;AAChC,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;;ACsDpC;;;;AAIG;IACS;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,cAA+B;AAC/B,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC;AACnC,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC;AACnC,IAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,iBAAqC;AACvC,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;AAO9B;;AAEG;MACU,gBAAgB,CAAA;AAK5B;AAED;;AAEG;MACU,kBAAkB,CAAA;AAK9B;;ACpFD;;AAEG;IACS;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,IAAa;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,IAAa;AACf,CAAC,EAHW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;ACHtB;;AAEG;IACS;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;AAQ5B;;AAEG;IACS;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;;MCDf,oBAAoB,CAAA;AAI/B,IAAA,WAAA,CAAY,MAA4B,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAuB;AACzC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI;IACtB;AAEA,IAAA,WAAW,CAAC,IAAO,EAAA;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QACrE;QACA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAqB;IAC/C;AAEA,IAAA,kBAAkB,CAAC,IAAO,EAAA;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,OAAO,GAAG,CAAC,OAAO;IACpB;AAEA,IAAA,qBAAqB,CAAC,IAAO,EAAA;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,OAAO,GAAG,CAAC,UAAU;IACvB;AAEA,IAAA,GAAG,CAAC,IAAO,EAAA;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,GAAG,CAAC,IAAO,EAAA;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,MAAM,CAAC,IAAO,EAAA;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B;AACD;;ACvDD;;AAEG;;ACFH;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kadaster/ggc-models",
3
- "version": "0.0.7",
3
+ "version": "1.0.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.1"
6
6
  },
@@ -1,3 +1,5 @@
1
+ import { Observable } from 'rxjs';
2
+
1
3
  /**
2
4
  * De default mapIndex die wordt gebruikt in 2D kaarten
3
5
  */
@@ -6,6 +8,13 @@ declare const DEFAULT_MAPINDEX = "_DEFAULT_";
6
8
  * De default mapIndex die wordt gebruikt in 3D kaarten (Cesium)
7
9
  */
8
10
  declare const DEFAULT_CESIUM_MAPINDEX = "_DEFAULT_CESIUM_";
11
+ /**
12
+ * Proj4-definitie voor het RD New
13
+ * coördinaten referentiesysteem (EPSG:28992).
14
+ *
15
+ * Wordt gebruikt voor projectie-registratie in OpenLayers.
16
+ */
17
+ declare const defs = "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +units=m +no_defs";
9
18
 
10
19
  declare enum LayerChangedEventTrigger {
11
20
  LAYER_ADDED = "layerAdded",
@@ -26,7 +35,7 @@ interface LayerChangedEvent extends CesiumLayerChangedEvent {
26
35
  * - Een mapbox vector tile stijl (`VectorTileStyle`)
27
36
  * - Of `undefined` als er geen legenda is.
28
37
  */
29
- type LegendType = IconList[] | LegendUrl | VectorTileStyle | undefined;
38
+ type LegendType = IconList[] | LegendUrl | undefined;
30
39
  /**
31
40
  * Legenda-informatie voor een specifieke laag.
32
41
  */
@@ -63,11 +72,6 @@ type LegendUrl = {
63
72
  /** Volledige URL naar de legenda-afbeelding. */
64
73
  legendUrl: string;
65
74
  };
66
- declare class VectorTileStyle {
67
- name: string;
68
- url: string;
69
- constructor(name: string, url: string);
70
- }
71
75
  /**
72
76
  * Enum voor de triggers van een legend event.
73
77
  * Added en removed worden getriggered bij het aan/uitzetten van een laag in bijvoorbeel de dataset-tree
@@ -125,5 +129,26 @@ declare enum Webservice3DType {
125
129
  TILES3D = "3Dtiles"
126
130
  }
127
131
 
128
- export { DEFAULT_CESIUM_MAPINDEX, DEFAULT_MAPINDEX, LayerChangedEventTrigger, LegendAddedEvent, LegendEventTrigger, LegendRemovedEvent, VectorTileStyle, ViewerType, Webservice2DType, Webservice3DType };
132
+ interface ObservableMap<O> {
133
+ subject: SubjectLike<O>;
134
+ observable: Observable<O>;
135
+ }
136
+ interface SubjectLike<O> extends Observable<O> {
137
+ asObservable(): Observable<O>;
138
+ next(val: O): void;
139
+ }
140
+ declare class ObservableMapWrapper<K, O> {
141
+ private readonly create;
142
+ private readonly map;
143
+ constructor(create: () => SubjectLike<O>);
144
+ get size(): number;
145
+ getOrCreate(name: K): ObservableMap<O>;
146
+ getOrCreateSubject(name: K): SubjectLike<O>;
147
+ getOrCreateObservable(name: K): Observable<O>;
148
+ get(name: K): ObservableMap<O> | undefined;
149
+ has(name: K): boolean;
150
+ delete(name: K): boolean;
151
+ }
152
+
153
+ export { DEFAULT_CESIUM_MAPINDEX, DEFAULT_MAPINDEX, LayerChangedEventTrigger, LegendAddedEvent, LegendEventTrigger, LegendRemovedEvent, ObservableMapWrapper, ViewerType, Webservice2DType, Webservice3DType, defs };
129
154
  export type { CesiumLayerChangedEvent, IconList, LayerChangedEvent, LayerLegend, LegendType, LegendUrl };