Merge pull request #2722 from elemoine/nullview

Make ol.Map#setView do not accept undefined
This commit is contained in:
Éric Lemoine
2014-09-17 15:01:41 +02:00
9 changed files with 30 additions and 21 deletions

View File

@@ -130,7 +130,11 @@ ol.control.Rotate.prototype.handlePointerUp_ = function(pointerEvent) {
ol.control.Rotate.prototype.resetNorth_ = function() { ol.control.Rotate.prototype.resetNorth_ = function() {
var map = this.getMap(); var map = this.getMap();
var view = map.getView(); var view = map.getView();
goog.asserts.assert(goog.isDef(view)); if (goog.isNull(view)) {
// the map does not have a view, so we can't act
// upon it
return;
}
var currentRotation = view.getRotation(); var currentRotation = view.getRotation();
while (currentRotation < -Math.PI) { while (currentRotation < -Math.PI) {
currentRotation += 2 * Math.PI; currentRotation += 2 * Math.PI;

View File

@@ -140,6 +140,11 @@ ol.control.Zoom.prototype.handlePointerUp_ = function(delta, pointerEvent) {
ol.control.Zoom.prototype.zoomByDelta_ = function(delta) { ol.control.Zoom.prototype.zoomByDelta_ = function(delta) {
var map = this.getMap(); var map = this.getMap();
var view = map.getView(); var view = map.getView();
if (goog.isNull(view)) {
// the map does not have a view, so we can't act
// upon it
return;
}
var currentResolution = view.getResolution(); var currentResolution = view.getResolution();
if (goog.isDef(currentResolution)) { if (goog.isDef(currentResolution)) {
if (this.duration_ > 0) { if (this.duration_ > 0) {

View File

@@ -50,7 +50,7 @@ ol.interaction.DoubleClickZoom.prototype.handleMapBrowserEvent =
var anchor = mapBrowserEvent.coordinate; var anchor = mapBrowserEvent.coordinate;
var delta = browserEvent.shiftKey ? -this.delta_ : this.delta_; var delta = browserEvent.shiftKey ? -this.delta_ : this.delta_;
var view = map.getView(); var view = map.getView();
goog.asserts.assert(goog.isDef(view)); goog.asserts.assert(!goog.isNull(view));
ol.interaction.Interaction.zoomByDelta( ol.interaction.Interaction.zoomByDelta(
map, view, delta, anchor, this.duration_); map, view, delta, anchor, this.duration_);
mapBrowserEvent.preventDefault(); mapBrowserEvent.preventDefault();

View File

@@ -100,7 +100,7 @@ ol.interaction.DragAndDrop.prototype.handleResult_ = function(file, result) {
var projection = this.reprojectTo_; var projection = this.reprojectTo_;
if (goog.isNull(projection)) { if (goog.isNull(projection)) {
var view = map.getView(); var view = map.getView();
goog.asserts.assert(goog.isDef(view)); goog.asserts.assert(!goog.isNull(view));
projection = view.getProjection(); projection = view.getProjection();
goog.asserts.assert(goog.isDef(projection)); goog.asserts.assert(goog.isDef(projection));
} }

View File

@@ -54,7 +54,7 @@ goog.inherits(ol.interaction.DragZoom, ol.interaction.DragBox);
ol.interaction.DragZoom.prototype.onBoxEnd = function() { ol.interaction.DragZoom.prototype.onBoxEnd = function() {
var map = this.getMap(); var map = this.getMap();
var view = map.getView(); var view = map.getView();
goog.asserts.assert(goog.isDef(view)); goog.asserts.assert(!goog.isNull(view));
var extent = this.getGeometry().getExtent(); var extent = this.getGeometry().getExtent();
var center = ol.extent.getCenter(extent); var center = ol.extent.getCenter(extent);
var size = map.getSize(); var size = map.getSize();

View File

@@ -70,7 +70,7 @@ ol.interaction.KeyboardPan.prototype.handleMapBrowserEvent =
keyCode == goog.events.KeyCodes.UP)) { keyCode == goog.events.KeyCodes.UP)) {
var map = mapBrowserEvent.map; var map = mapBrowserEvent.map;
var view = map.getView(); var view = map.getView();
goog.asserts.assert(goog.isDef(view)); goog.asserts.assert(!goog.isNull(view));
var viewState = view.getState(); var viewState = view.getState();
var mapUnitsDelta = viewState.resolution * this.pixelDelta_; var mapUnitsDelta = viewState.resolution * this.pixelDelta_;
var deltaX = 0, deltaY = 0; var deltaX = 0, deltaY = 0;

View File

@@ -70,7 +70,7 @@ ol.interaction.KeyboardZoom.prototype.handleMapBrowserEvent =
var delta = (charCode == '+'.charCodeAt(0)) ? this.delta_ : -this.delta_; var delta = (charCode == '+'.charCodeAt(0)) ? this.delta_ : -this.delta_;
map.render(); map.render();
var view = map.getView(); var view = map.getView();
goog.asserts.assert(goog.isDef(view)); goog.asserts.assert(!goog.isNull(view));
ol.interaction.Interaction.zoomByDelta( ol.interaction.Interaction.zoomByDelta(
map, view, delta, undefined, this.duration_); map, view, delta, undefined, this.duration_);
mapBrowserEvent.preventDefault(); mapBrowserEvent.preventDefault();

View File

@@ -101,7 +101,7 @@ ol.interaction.MouseWheelZoom.prototype.doZoom_ = function(map) {
var delta = goog.math.clamp(this.delta_, -maxDelta, maxDelta); var delta = goog.math.clamp(this.delta_, -maxDelta, maxDelta);
var view = map.getView(); var view = map.getView();
goog.asserts.assert(goog.isDef(view)); goog.asserts.assert(!goog.isNull(view));
map.render(); map.render();
ol.interaction.Interaction.zoomByDelta(map, view, -delta, this.lastAnchor_, ol.interaction.Interaction.zoomByDelta(map, view, -delta, this.lastAnchor_,

View File

@@ -753,7 +753,7 @@ goog.exportProperty(
/** /**
* Get the view associated with this map. A view manages properties such as * Get the view associated with this map. A view manages properties such as
* center and resolution. * center and resolution.
* @return {ol.View|undefined} The view that controls this map. * @return {ol.View} The view that controls this map.
* @observable * @observable
* @api stable * @api stable
*/ */
@@ -988,7 +988,7 @@ ol.Map.prototype.handleViewChanged_ = function() {
this.viewPropertyListenerKey_ = null; this.viewPropertyListenerKey_ = null;
} }
var view = this.getView(); var view = this.getView();
if (goog.isDefAndNotNull(view)) { if (!goog.isNull(view)) {
this.viewPropertyListenerKey_ = goog.events.listen( this.viewPropertyListenerKey_ = goog.events.listen(
view, ol.ObjectEventType.PROPERTYCHANGE, view, ol.ObjectEventType.PROPERTYCHANGE,
this.handleViewPropertyChanged_, false, this); this.handleViewPropertyChanged_, false, this);
@@ -1061,7 +1061,7 @@ ol.Map.prototype.isDef = function() {
return false; return false;
} }
var view = this.getView(); var view = this.getView();
if (!goog.isDef(view) || !view.isDef()) { if (goog.isNull(view) || !view.isDef()) {
return false; return false;
} }
return true; return true;
@@ -1189,7 +1189,7 @@ ol.Map.prototype.renderFrame_ = function(time) {
/** @type {?olx.FrameState} */ /** @type {?olx.FrameState} */
var frameState = null; var frameState = null;
if (goog.isDef(size) && hasArea(size) && if (goog.isDef(size) && hasArea(size) &&
goog.isDef(view) && view.isDef()) { !goog.isNull(view) && view.isDef()) {
var viewHints = view.getHints(); var viewHints = view.getHints();
var layerStatesArray = this.getLayerGroup().getLayerStatesArray(); var layerStatesArray = this.getLayerGroup().getLayerStatesArray();
var layerStates = {}; var layerStates = {};
@@ -1221,17 +1221,17 @@ ol.Map.prototype.renderFrame_ = function(time) {
}); });
} }
var preRenderFunctions = this.preRenderFunctions_;
var n = 0, preRenderFunction;
for (i = 0, ii = preRenderFunctions.length; i < ii; ++i) {
preRenderFunction = preRenderFunctions[i];
if (preRenderFunction(this, frameState)) {
preRenderFunctions[n++] = preRenderFunction;
}
}
preRenderFunctions.length = n;
if (!goog.isNull(frameState)) { if (!goog.isNull(frameState)) {
var preRenderFunctions = this.preRenderFunctions_;
var n = 0, preRenderFunction;
for (i = 0, ii = preRenderFunctions.length; i < ii; ++i) {
preRenderFunction = preRenderFunctions[i];
if (preRenderFunction(this, frameState)) {
preRenderFunctions[n++] = preRenderFunction;
}
}
preRenderFunctions.length = n;
frameState.extent = ol.extent.getForViewAndSize(viewState.center, frameState.extent = ol.extent.getForViewAndSize(viewState.center,
viewState.resolution, viewState.rotation, frameState.size); viewState.resolution, viewState.rotation, frameState.size);
} }