Skip to content

Commit 30f0741

Browse files
author
Stefan Kuethe
committed
Refactor view
1 parent 2d51781 commit 30f0741

File tree

3 files changed

+37
-19
lines changed

3 files changed

+37
-19
lines changed

src/openlayers/js/openlayers.anywidget.js

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

srcjs/ipywidget-ts/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { ViewOptions } from "ol/View";
22

33
declare type MyMapOptions = {
44
// TODO: Pass View JSONDef instead of ViewOptions only
5-
viewOptions: ViewOptions | undefined;
5+
// viewOptions: ViewOptions | undefined;
66
view: JSONDef;
77
layers: JSONDef[] | undefined;
88
controls: JSONDef[] | undefined;

srcjs/ipywidget-ts/map.ts

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Map, View } from "ol";
2-
import type { ViewOptions } from "ol/View";
2+
// import type { ViewOptions } from "ol/View";
33

44
// import TileLayer from "ol/layer/Tile";
55

@@ -33,26 +33,43 @@ import type { MyMapOptions } from ".";
3333
import type { Coordinate } from "ol/coordinate";
3434

3535
// ...
36+
/*
3637
type LayerStore = {
3738
[key: string]: Layer;
3839
};
40+
*/
3941

40-
//
42+
//
43+
/*
4144
type ControlStore = {
4245
[key: string]: Control;
4346
};
47+
*/
4448

4549
//
4650
type Metadata = {
47-
layers: any[]; //{ [key: string]: any };
48-
controls: any[]; //{ [key: string]: any };
51+
layers: any[];
52+
controls: any[];
4953
};
5054

5155
const TYPE_IDENTIFIER = "@@type";
5256
const GEOJSON_IDENTIFIER = "@@geojson";
5357

5458
const jsonConverter = new JSONConverter();
5559

60+
function parseViewDef(viewDef: JSONDef): View {
61+
const view = jsonConverter.parse(viewDef) as View;
62+
const center = view.getCenter();
63+
console.log("view center", center)
64+
if (center && view.getProjection().getCode() !== "EPSG:4326") {
65+
const centerTransformed = fromLonLat(center);
66+
console.log("view center transformed", centerTransformed);
67+
view.setCenter(centerTransformed);
68+
}
69+
70+
return view;
71+
}
72+
5673
function parseLayerDef(layerDef: JSONDef): Layer {
5774
const layer = jsonConverter.parse(layerDef);
5875
layer.set("id", layerDef.id);
@@ -74,8 +91,6 @@ export default class MapWidget {
7491
_container: HTMLElement;
7592
_map: Map;
7693
_metadata: Metadata = { layers: [], controls: [] };
77-
// _layerStore: LayerStore = {};
78-
// _controlStore: ControlStore = {};
7994

8095
constructor(mapElement: HTMLElement, mapOptions: MyMapOptions) {
8196
let baseLayers: Layer[] = [] // defaultLayers;
@@ -108,6 +123,7 @@ export default class MapWidget {
108123
*/
109124

110125
// TODO: Move to func 'parseView'
126+
/*
111127
const view = jsonConverter.parse(mapOptions.view) as View;
112128
const center = view.getCenter();
113129
console.log("center", center)
@@ -116,6 +132,8 @@ export default class MapWidget {
116132
console.log("centerTransformed", centerTransformed);
117133
view.setCenter(centerTransformed);
118134
}
135+
*/
136+
const view = parseViewDef(mapOptions.view);
119137

120138
this._container = mapElement;
121139
this._map = new Map({

0 commit comments

Comments
 (0)