diff --git a/frontend-js/src/main/js/map/CustomMap.js b/frontend-js/src/main/js/map/CustomMap.js index f2989dc1a5b750fbb098b9664ff09425ed5a28f1..76e1d044971de7bb22b3ca8963e2d33dd0e069af 100644 --- a/frontend-js/src/main/js/map/CustomMap.js +++ b/frontend-js/src/main/js/map/CustomMap.js @@ -95,17 +95,42 @@ CustomMap.prototype.init = function () { ids.push(mapType); } - return Promise.each(ids, function (overlayId) { - try { - return self.openDataOverlay(overlayId); - } catch (e) { - if (e instanceof SecurityError) { - logger.debug(e.message); - sessionData.setSelectedBackgroundOverlay(self.getProject().getDataOverlays()[0].getId()); - } else { - return Promise.reject(e); - } + return Promise.all([self.getMapCanvas().triggerListeners('resize'), + // noinspection SpellCheckingInspection + self.getMapCanvas().triggerListeners('maptypeid_changed'), + self.getMapCanvas().triggerListeners('projection_changed') + ]).then(function() { + + // center map and zoom in to fit into browser window if there is no + // information about coordinates in the session + + var x = self.getModel().getDefaultCenterX(); + var y = self.getModel().getDefaultCenterY(); + var zoom = self.getModel().getDefaultZoomLevel(); + if (self.getServerConnector().getSessionData(self.getProject()).getCenter(self.getModel()) === undefined && + (x === undefined || y === undefined || zoom === undefined || + x === null || y === null || zoom === null + )) { + var bounds = new Bounds(); + bounds.extend(self.getTopLeft()); + bounds.extend(self.getBottomRight()); + + self.getMapCanvas().fitBounds(bounds); } + + + return Promise.each(ids, function (overlayId) { + try { + return self.openDataOverlay(overlayId); + } catch (e) { + if (e instanceof SecurityError) { + logger.debug(e.message); + sessionData.setSelectedBackgroundOverlay(self.getProject().getDataOverlays()[0].getId()); + } else { + return Promise.reject(e); + } + } + }); }).then(function () { return self.getServerConnector().getLogoImg(); }).then(function (url) { @@ -473,28 +498,6 @@ CustomMap.prototype.customizeGoogleMapView = function (div) { self.createMapCanvas(div); self.createLogo(); - - self.getMapCanvas().triggerListeners('resize'); - // noinspection SpellCheckingInspection - self.getMapCanvas().triggerListeners('maptypeid_changed'); - self.getMapCanvas().triggerListeners('projection_changed'); - - // center map and zoom in to fit into browser window if there is no - // information about coordinates in the session - - var x = self.getModel().getDefaultCenterX(); - var y = self.getModel().getDefaultCenterY(); - var zoom = self.getModel().getDefaultZoomLevel(); - if (self.getServerConnector().getSessionData(self.getProject()).getCenter(self.getModel()) === undefined && - (x === undefined || y === undefined || zoom === undefined || - x === null || y === null || zoom === null - )) { - var bounds = new Bounds(); - bounds.extend(self.getTopLeft()); - bounds.extend(self.getBottomRight()); - - self.getMapCanvas().fitBounds(bounds); - } }; /** diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js index 48bdb5c1e3d6741f9c7eb0add03f950161db0e7e..c05f6d7095a44ffae0c7e4cfd62eff03b7c89f08 100644 --- a/frontend-js/src/test/js/minerva-test.js +++ b/frontend-js/src/test/js/minerva-test.js @@ -108,8 +108,8 @@ describe('minerva global', function () { }).then(function (result) { var center = ServerConnectorMock.getSessionData(options.getProject()).getCenter(options.getProject().getModels()[0]); assert.ok(center instanceof Point); - assert.equal(center.x, 5); - assert.equal(center.y, 6); + assert.closeTo(center.x, 5, helper.EPSILON); + assert.closeTo(center.y, 6, helper.EPSILON); return result.destroy(); }); });