Skip to content

Commit 2d51781

Browse files
author
Stefan Kuethe
committed
Refactor map init
1 parent 50f4021 commit 2d51781

File tree

3 files changed

+43
-49
lines changed

3 files changed

+43
-49
lines changed

notebooks/layers/Untitled.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"metadata": {},
4141
"outputs": [],
4242
"source": [
43-
"m = ol.MapWidget(view, layers=[basemap])"
43+
"m = ol.MapWidget(view, layers=[basemap], controls=[ol.controls.ZoomSliderControl()])"
4444
]
4545
},
4646
{
@@ -52,7 +52,7 @@
5252
{
5353
"data": {
5454
"application/vnd.jupyter.widget-view+json": {
55-
"model_id": "46b832d13c90456994750e52e852d7ce",
55+
"model_id": "f08204b538294150862d3323346f4dec",
5656
"version_major": 2,
5757
"version_minor": 1
5858
},
@@ -115,7 +115,7 @@
115115
},
116116
{
117117
"cell_type": "code",
118-
"execution_count": 9,
118+
"execution_count": 10,
119119
"id": "2e7cee1d",
120120
"metadata": {},
121121
"outputs": [],

src/openlayers/js/openlayers.anywidget.js

Lines changed: 22 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

srcjs/ipywidget-ts/map.ts

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ export default class MapWidget {
7474
_container: HTMLElement;
7575
_map: Map;
7676
_metadata: Metadata = { layers: [], controls: [] };
77-
_layerStore: LayerStore = {};
78-
_controlStore: ControlStore = {};
77+
// _layerStore: LayerStore = {};
78+
// _controlStore: ControlStore = {};
7979

8080
constructor(mapElement: HTMLElement, mapOptions: MyMapOptions) {
8181
let baseLayers: Layer[] = [] // defaultLayers;
@@ -97,14 +97,17 @@ export default class MapWidget {
9797

9898
let baseControls: Control[] = [];
9999
// TODO: Use 'addControls' after map was created instead
100+
/*
100101
if (mapOptions.controls !== undefined) {
101102
for (let controlJSONDef of mapOptions.controls) {
102103
const control = jsonConverter.parse(controlJSONDef);
103104
baseControls.push(control);
104105
this._controlStore[controlJSONDef.id] = control;
105106
}
106107
}
108+
*/
107109

110+
// TODO: Move to func 'parseView'
108111
const view = jsonConverter.parse(mapOptions.view) as View;
109112
const center = view.getCenter();
110113
console.log("center", center)
@@ -117,13 +120,16 @@ export default class MapWidget {
117120
this._container = mapElement;
118121
this._map = new Map({
119122
target: mapElement,
120-
// view: new View(mapOptions.viewOptions),
121-
// view: new View(this.transformCenter(mapOptions.viewOptions)),
122123
view: view,
123124
controls: defaultControls().extend(baseControls),
124125
layers: baseLayers,
125126
});
126127

128+
// Add controls
129+
for (let controlDef of mapOptions.controls || []) {
130+
this.addControl(controlDef);
131+
}
132+
127133
// Add layers
128134
for (let layerDef of mapOptions.layers || []) {
129135
this.addLayer(layerDef);
@@ -152,23 +158,12 @@ export default class MapWidget {
152158
return this._metadata;
153159
}
154160

155-
// TODO: Obsolete
156-
getLayerOld(layerId: string): Layer {
157-
return this._layerStore[layerId];
158-
}
159-
160-
// TODO: Obsolete
161-
/*
162-
getControlOld(controlId: string): Control {
163-
return this._controlStore[controlId];
164-
}
165-
*/
166-
167161
setViewFromSource(layerId: string): void {
168-
const layer = this.getLayer(layerId); // this._layerStore[layerId];
162+
const layer = this.getLayer(layerId);
169163
const source = layer?.getSource();
170164
const view = source?.getView();
171-
if (view !== undefined) this._map.setView(view);
165+
if (view)
166+
this._map.setView(view);
172167
}
173168

174169
setExtentFromSource(): void {
@@ -220,12 +215,11 @@ export default class MapWidget {
220215

221216
removeLayer(layerId: string): void {
222217
const layer = this.getLayer(layerId);
223-
if (layer === undefined)
224-
return;
225-
226-
this._map.removeLayer(layer);
227-
this._metadata.layers = this._metadata.layers.filter(item => item["id"] != layerId);
228-
console.log("layer", layerId, "removed", this._metadata);
218+
if (layer) {
219+
this._map.removeLayer(layer);
220+
this._metadata.layers = this._metadata.layers.filter(item => item["id"] != layerId);
221+
console.log("layer", layerId, "removed", this._metadata);
222+
}
229223
}
230224

231225
// --- Controls

0 commit comments

Comments
 (0)