Merge remote-tracking branch 'openlayers/master' into vector-api
This commit is contained in:
@@ -9,15 +9,19 @@ goog.require('goog.dom.TagName');
|
||||
* @const
|
||||
* @type {boolean}
|
||||
*/
|
||||
ol.canvas.SUPPORTED = (function() {
|
||||
if (!('HTMLCanvasElement' in goog.global)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
var canvas = /** @type {HTMLCanvasElement} */
|
||||
(goog.dom.createElement(goog.dom.TagName.CANVAS));
|
||||
return !goog.isNull(canvas.getContext('2d'));
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
ol.canvas.SUPPORTED = (
|
||||
/**
|
||||
* @return {boolean} Canvas supported.
|
||||
*/
|
||||
function() {
|
||||
if (!('HTMLCanvasElement' in goog.global)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
var canvas = /** @type {HTMLCanvasElement} */
|
||||
(goog.dom.createElement(goog.dom.TagName.CANVAS));
|
||||
return !goog.isNull(canvas.getContext('2d'));
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
goog.provide('ol.control.Zoom');
|
||||
|
||||
goog.require('goog.asserts');
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.dom.TagName');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.View2D');
|
||||
goog.require('ol.animation');
|
||||
goog.require('ol.control.Control');
|
||||
goog.require('ol.css');
|
||||
@@ -77,8 +79,11 @@ ol.control.Zoom.prototype.zoomByDelta_ = function(delta, browserEvent) {
|
||||
browserEvent.preventDefault();
|
||||
var map = this.getMap();
|
||||
// FIXME works for View2D only
|
||||
var view = map.getView().getView2D();
|
||||
var currentResolution = view.getResolution();
|
||||
var view = map.getView();
|
||||
goog.asserts.assert(goog.isDef(view));
|
||||
var view2D = view.getView2D();
|
||||
goog.asserts.assertInstanceof(view2D, ol.View2D);
|
||||
var currentResolution = view2D.getResolution();
|
||||
if (goog.isDef(currentResolution)) {
|
||||
if (this.duration_ > 0) {
|
||||
map.beforeRender(ol.animation.zoom({
|
||||
@@ -87,7 +92,7 @@ ol.control.Zoom.prototype.zoomByDelta_ = function(delta, browserEvent) {
|
||||
easing: ol.easing.easeOut
|
||||
}));
|
||||
}
|
||||
var newResolution = view.constrainResolution(currentResolution, delta);
|
||||
view.setResolution(newResolution);
|
||||
var newResolution = view2D.constrainResolution(currentResolution, delta);
|
||||
view2D.setResolution(newResolution);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -31,7 +31,7 @@ ol.dom.setTransform = function(element, value) {
|
||||
|
||||
/**
|
||||
* @param {Element} element Element.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Matrix.
|
||||
* @param {goog.vec.Mat4.Number} transform Matrix.
|
||||
* @param {number=} opt_precision Precision.
|
||||
*/
|
||||
ol.dom.transformElement2D = function(element, transform, opt_precision) {
|
||||
|
||||
@@ -84,11 +84,13 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) {
|
||||
// FIXME works for View2D only
|
||||
|
||||
var map = mapBrowserEvent.map;
|
||||
var view = map.getView().getView2D();
|
||||
var view = map.getView();
|
||||
view.setHint(ol.ViewHint.INTERACTING, -1);
|
||||
|
||||
if (this.kinetic_ && this.kinetic_.end()) {
|
||||
var view2DState = view.getView2DState();
|
||||
var view2D = view.getView2D();
|
||||
goog.asserts.assertInstanceof(view2D, ol.View2D);
|
||||
var view2DState = view2D.getView2DState();
|
||||
var distance = this.kinetic_.getDistance();
|
||||
var angle = this.kinetic_.getAngle();
|
||||
this.kineticPreRenderFn_ = this.kinetic_.pan(view2DState.center);
|
||||
@@ -99,8 +101,8 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) {
|
||||
centerpx[0] - distance * Math.cos(angle),
|
||||
centerpx[1] - distance * Math.sin(angle)
|
||||
]);
|
||||
dest = view.constrainCenter(dest);
|
||||
view.setCenter(dest);
|
||||
dest = view2D.constrainCenter(dest);
|
||||
view2D.setCenter(dest);
|
||||
}
|
||||
map.requestRenderFrame();
|
||||
};
|
||||
|
||||
@@ -105,13 +105,14 @@ ol.interaction.DragRotateAndZoom.prototype.handleDragEnd =
|
||||
function(mapBrowserEvent) {
|
||||
var map = mapBrowserEvent.map;
|
||||
// FIXME works for View2D only
|
||||
var view = map.getView().getView2D();
|
||||
var view = map.getView();
|
||||
view.setHint(ol.ViewHint.INTERACTING, -1);
|
||||
var view2DState = view.getView2DState();
|
||||
var view2D = view.getView2D();
|
||||
var view2DState = view2D.getView2DState();
|
||||
var direction = this.lastScaleDelta_ - 1;
|
||||
map.withFrozenRendering(function() {
|
||||
ol.interaction.Interaction.rotate(map, view, view2DState.rotation);
|
||||
ol.interaction.Interaction.zoom(map, view, view2DState.resolution,
|
||||
ol.interaction.Interaction.rotate(map, view2D, view2DState.rotation);
|
||||
ol.interaction.Interaction.zoom(map, view2D, view2DState.resolution,
|
||||
undefined, ol.interaction.DRAGROTATEANDZOOM_ANIMATION_DURATION,
|
||||
direction);
|
||||
});
|
||||
|
||||
@@ -74,11 +74,12 @@ ol.interaction.DragRotate.prototype.handleDrag = function(mapBrowserEvent) {
|
||||
ol.interaction.DragRotate.prototype.handleDragEnd = function(mapBrowserEvent) {
|
||||
var map = mapBrowserEvent.map;
|
||||
// FIXME works for View2D only
|
||||
var view = map.getView().getView2D();
|
||||
var view = map.getView();
|
||||
view.setHint(ol.ViewHint.INTERACTING, -1);
|
||||
var view2DState = view.getView2DState();
|
||||
ol.interaction.Interaction.rotate(map, view, view2DState.rotation, undefined,
|
||||
ol.interaction.DRAGROTATE_ANIMATION_DURATION);
|
||||
var view2D = view.getView2D();
|
||||
var view2DState = view2D.getView2DState();
|
||||
ol.interaction.Interaction.rotate(map, view2D, view2DState.rotation,
|
||||
undefined, ol.interaction.DRAGROTATE_ANIMATION_DURATION);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
|
||||
goog.provide('ol.interaction.Interaction');
|
||||
|
||||
goog.require('goog.asserts');
|
||||
goog.require('goog.events.EventTarget');
|
||||
goog.require('ol.MapBrowserEvent');
|
||||
goog.require('ol.View2D');
|
||||
goog.require('ol.animation');
|
||||
goog.require('ol.easing');
|
||||
|
||||
@@ -58,12 +60,13 @@ ol.interaction.Interaction.prototype.setMap = function(map) {
|
||||
|
||||
/**
|
||||
* @param {ol.Map} map Map.
|
||||
* @param {ol.View2D} view View.
|
||||
* @param {ol.IView2D} view View.
|
||||
* @param {ol.Coordinate} delta Delta.
|
||||
* @param {number=} opt_duration Duration.
|
||||
*/
|
||||
ol.interaction.Interaction.pan = function(
|
||||
map, view, delta, opt_duration) {
|
||||
goog.asserts.assertInstanceof(view, ol.View2D);
|
||||
var currentCenter = view.getCenter();
|
||||
if (goog.isDef(currentCenter)) {
|
||||
if (goog.isDef(opt_duration) && opt_duration > 0) {
|
||||
@@ -82,13 +85,14 @@ ol.interaction.Interaction.pan = function(
|
||||
|
||||
/**
|
||||
* @param {ol.Map} map Map.
|
||||
* @param {ol.View2D} view View.
|
||||
* @param {ol.IView2D} view View.
|
||||
* @param {number|undefined} rotation Rotation.
|
||||
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
|
||||
* @param {number=} opt_duration Duration.
|
||||
*/
|
||||
ol.interaction.Interaction.rotate =
|
||||
function(map, view, rotation, opt_anchor, opt_duration) {
|
||||
goog.asserts.assertInstanceof(view, ol.View2D);
|
||||
rotation = view.constrainRotation(rotation, 0);
|
||||
ol.interaction.Interaction.rotateWithoutConstraints(
|
||||
map, view, rotation, opt_anchor, opt_duration);
|
||||
@@ -97,13 +101,14 @@ ol.interaction.Interaction.rotate =
|
||||
|
||||
/**
|
||||
* @param {ol.Map} map Map.
|
||||
* @param {ol.View2D} view View.
|
||||
* @param {ol.IView2D} view View.
|
||||
* @param {number|undefined} rotation Rotation.
|
||||
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
|
||||
* @param {number=} opt_duration Duration.
|
||||
*/
|
||||
ol.interaction.Interaction.rotateWithoutConstraints =
|
||||
function(map, view, rotation, opt_anchor, opt_duration) {
|
||||
goog.asserts.assertInstanceof(view, ol.View2D);
|
||||
if (goog.isDefAndNotNull(rotation)) {
|
||||
var currentRotation = view.getRotation();
|
||||
var currentCenter = view.getCenter();
|
||||
@@ -125,6 +130,7 @@ ol.interaction.Interaction.rotateWithoutConstraints =
|
||||
if (goog.isDefAndNotNull(opt_anchor)) {
|
||||
var center = view.calculateCenterRotate(rotation, opt_anchor);
|
||||
map.withFrozenRendering(function() {
|
||||
goog.asserts.assertInstanceof(view, ol.View2D);
|
||||
view.setCenter(center);
|
||||
view.setRotation(rotation);
|
||||
});
|
||||
@@ -137,7 +143,7 @@ ol.interaction.Interaction.rotateWithoutConstraints =
|
||||
|
||||
/**
|
||||
* @param {ol.Map} map Map.
|
||||
* @param {ol.View2D} view View.
|
||||
* @param {ol.IView2D} view View.
|
||||
* @param {number|undefined} resolution Resolution to go to.
|
||||
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
|
||||
* @param {number=} opt_duration Duration.
|
||||
@@ -152,6 +158,7 @@ ol.interaction.Interaction.rotateWithoutConstraints =
|
||||
*/
|
||||
ol.interaction.Interaction.zoom =
|
||||
function(map, view, resolution, opt_anchor, opt_duration, opt_direction) {
|
||||
goog.asserts.assertInstanceof(view, ol.View2D);
|
||||
resolution = view.constrainResolution(resolution, 0, opt_direction);
|
||||
ol.interaction.Interaction.zoomWithoutConstraints(
|
||||
map, view, resolution, opt_anchor, opt_duration);
|
||||
@@ -160,13 +167,14 @@ ol.interaction.Interaction.zoom =
|
||||
|
||||
/**
|
||||
* @param {ol.Map} map Map.
|
||||
* @param {ol.View2D} view View.
|
||||
* @param {ol.IView2D} view View.
|
||||
* @param {number} delta Delta from previous zoom level.
|
||||
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
|
||||
* @param {number=} opt_duration Duration.
|
||||
*/
|
||||
ol.interaction.Interaction.zoomByDelta =
|
||||
function(map, view, delta, opt_anchor, opt_duration) {
|
||||
goog.asserts.assertInstanceof(view, ol.View2D);
|
||||
var currentResolution = view.getResolution();
|
||||
var resolution = view.constrainResolution(currentResolution, delta, 0);
|
||||
ol.interaction.Interaction.zoomWithoutConstraints(
|
||||
@@ -176,13 +184,14 @@ ol.interaction.Interaction.zoomByDelta =
|
||||
|
||||
/**
|
||||
* @param {ol.Map} map Map.
|
||||
* @param {ol.View2D} view View.
|
||||
* @param {ol.IView2D} view View.
|
||||
* @param {number|undefined} resolution Resolution to go to.
|
||||
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
|
||||
* @param {number=} opt_duration Duration.
|
||||
*/
|
||||
ol.interaction.Interaction.zoomWithoutConstraints =
|
||||
function(map, view, resolution, opt_anchor, opt_duration) {
|
||||
goog.asserts.assertInstanceof(view, ol.View2D);
|
||||
if (goog.isDefAndNotNull(resolution)) {
|
||||
var currentResolution = view.getResolution();
|
||||
var currentCenter = view.getCenter();
|
||||
@@ -204,6 +213,7 @@ ol.interaction.Interaction.zoomWithoutConstraints =
|
||||
if (goog.isDefAndNotNull(opt_anchor)) {
|
||||
var center = view.calculateCenterZoom(resolution, opt_anchor);
|
||||
map.withFrozenRendering(function() {
|
||||
goog.asserts.assertInstanceof(view, ol.View2D);
|
||||
view.setCenter(center);
|
||||
view.setResolution(resolution);
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@ goog.require('goog.asserts');
|
||||
goog.require('ol.Kinetic');
|
||||
goog.require('ol.Pixel');
|
||||
goog.require('ol.PreRenderFunction');
|
||||
goog.require('ol.View2D');
|
||||
goog.require('ol.coordinate');
|
||||
goog.require('ol.interaction.Touch');
|
||||
|
||||
@@ -64,15 +65,16 @@ ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) {
|
||||
var deltaX = this.lastCentroid[0] - centroid[0];
|
||||
var deltaY = centroid[1] - this.lastCentroid[1];
|
||||
var map = mapBrowserEvent.map;
|
||||
var view = map.getView().getView2D();
|
||||
var view2DState = view.getView2DState();
|
||||
var view2D = map.getView().getView2D();
|
||||
goog.asserts.assertInstanceof(view2D, ol.View2D);
|
||||
var view2DState = view2D.getView2DState();
|
||||
var center = [deltaX, deltaY];
|
||||
ol.coordinate.scale(center, view2DState.resolution);
|
||||
ol.coordinate.rotate(center, view2DState.rotation);
|
||||
ol.coordinate.add(center, view2DState.center);
|
||||
center = view.constrainCenter(center);
|
||||
center = view2D.constrainCenter(center);
|
||||
map.requestRenderFrame();
|
||||
view.setCenter(center);
|
||||
view2D.setCenter(center);
|
||||
}
|
||||
this.lastCentroid = centroid;
|
||||
};
|
||||
@@ -84,12 +86,14 @@ ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) {
|
||||
ol.interaction.TouchPan.prototype.handleTouchEnd =
|
||||
function(mapBrowserEvent) {
|
||||
var map = mapBrowserEvent.map;
|
||||
var view = map.getView();
|
||||
var view2D = map.getView().getView2D();
|
||||
goog.asserts.assertInstanceof(view2D, ol.View2D);
|
||||
if (this.targetTouches.length === 0) {
|
||||
if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) {
|
||||
var distance = this.kinetic_.getDistance();
|
||||
var angle = this.kinetic_.getAngle();
|
||||
var center = view.getCenter();
|
||||
var center = view2D.getCenter();
|
||||
goog.asserts.assert(goog.isDef(center));
|
||||
this.kineticPreRenderFn_ = this.kinetic_.pan(center);
|
||||
map.beforeRender(this.kineticPreRenderFn_);
|
||||
var centerpx = map.getPixelFromCoordinate(center);
|
||||
@@ -97,8 +101,8 @@ ol.interaction.TouchPan.prototype.handleTouchEnd =
|
||||
centerpx[0] - distance * Math.cos(angle),
|
||||
centerpx[1] - distance * Math.sin(angle)
|
||||
]);
|
||||
dest = view.constrainCenter(dest);
|
||||
view.setCenter(dest);
|
||||
dest = view2D.constrainCenter(dest);
|
||||
view2D.setCenter(dest);
|
||||
}
|
||||
map.requestRenderFrame();
|
||||
return false;
|
||||
@@ -116,12 +120,13 @@ ol.interaction.TouchPan.prototype.handleTouchStart =
|
||||
function(mapBrowserEvent) {
|
||||
if (this.targetTouches.length > 0) {
|
||||
var map = mapBrowserEvent.map;
|
||||
var view = map.getView();
|
||||
var view2D = map.getView().getView2D();
|
||||
goog.asserts.assertInstanceof(view2D, ol.View2D);
|
||||
this.lastCentroid = null;
|
||||
map.requestRenderFrame();
|
||||
if (!goog.isNull(this.kineticPreRenderFn_) &&
|
||||
map.removePreRenderFunction(this.kineticPreRenderFn_)) {
|
||||
view.setCenter(mapBrowserEvent.frameState.view2DState.center);
|
||||
view2D.setCenter(mapBrowserEvent.frameState.view2DState.center);
|
||||
this.kineticPreRenderFn_ = null;
|
||||
}
|
||||
if (this.kinetic_) {
|
||||
|
||||
@@ -25,3 +25,10 @@ ol.IView.prototype.getView2D = function() {
|
||||
*/
|
||||
ol.IView.prototype.getView3D = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @return {boolean} Is defined.
|
||||
*/
|
||||
ol.IView.prototype.isDef = function() {
|
||||
};
|
||||
|
||||
@@ -59,3 +59,10 @@ ol.IView2D.prototype.getRotation = function() {
|
||||
*/
|
||||
ol.IView2D.prototype.getView2DState = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @return {boolean} Is defined.
|
||||
*/
|
||||
ol.IView2D.prototype.isDef = function() {
|
||||
};
|
||||
|
||||
@@ -8,3 +8,10 @@ goog.provide('ol.IView3D');
|
||||
*/
|
||||
ol.IView3D = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @return {boolean} Is defined.
|
||||
*/
|
||||
ol.IView3D.prototype.isDef = function() {
|
||||
};
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
goog.provide('ol.layer.Image');
|
||||
|
||||
goog.require('ol.layer.Layer');
|
||||
goog.require('ol.source.Image');
|
||||
|
||||
|
||||
|
||||
@@ -15,11 +14,3 @@ ol.layer.Image = function(options) {
|
||||
goog.base(this, options);
|
||||
};
|
||||
goog.inherits(ol.layer.Image, ol.layer.Layer);
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.source.Image} Single image source.
|
||||
*/
|
||||
ol.layer.Image.prototype.getImageSource = function() {
|
||||
return /** @type {ol.source.Image} */ (this.getSource());
|
||||
};
|
||||
|
||||
@@ -84,10 +84,11 @@ ol.layer.Base.prototype.dispatchChangeEvent = function() {
|
||||
|
||||
|
||||
/**
|
||||
* @return {number} Brightness.
|
||||
* @return {number|undefined} Brightness.
|
||||
*/
|
||||
ol.layer.Base.prototype.getBrightness = function() {
|
||||
return /** @type {number} */ (this.get(ol.layer.LayerProperty.BRIGHTNESS));
|
||||
return /** @type {number|undefined} */ (
|
||||
this.get(ol.layer.LayerProperty.BRIGHTNESS));
|
||||
};
|
||||
goog.exportProperty(
|
||||
ol.layer.Base.prototype,
|
||||
@@ -96,10 +97,11 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @return {number} Contrast.
|
||||
* @return {number|undefined} Contrast.
|
||||
*/
|
||||
ol.layer.Base.prototype.getContrast = function() {
|
||||
return /** @type {number} */ (this.get(ol.layer.LayerProperty.CONTRAST));
|
||||
return /** @type {number|undefined} */ (
|
||||
this.get(ol.layer.LayerProperty.CONTRAST));
|
||||
};
|
||||
goog.exportProperty(
|
||||
ol.layer.Base.prototype,
|
||||
@@ -108,10 +110,10 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @return {number} Hue.
|
||||
* @return {number|undefined} Hue.
|
||||
*/
|
||||
ol.layer.Base.prototype.getHue = function() {
|
||||
return /** @type {number} */ (this.get(ol.layer.LayerProperty.HUE));
|
||||
return /** @type {number|undefined} */ (this.get(ol.layer.LayerProperty.HUE));
|
||||
};
|
||||
goog.exportProperty(
|
||||
ol.layer.Base.prototype,
|
||||
@@ -168,10 +170,10 @@ ol.layer.Base.prototype.getLayerStatesArray = goog.abstractMethod;
|
||||
|
||||
|
||||
/**
|
||||
* @return {number} MaxResolution.
|
||||
* @return {number|undefined} MaxResolution.
|
||||
*/
|
||||
ol.layer.Base.prototype.getMaxResolution = function() {
|
||||
return /** @type {number} */ (
|
||||
return /** @type {number|undefined} */ (
|
||||
this.get(ol.layer.LayerProperty.MAX_RESOLUTION));
|
||||
};
|
||||
goog.exportProperty(
|
||||
@@ -181,10 +183,10 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @return {number} MinResolution.
|
||||
* @return {number|undefined} MinResolution.
|
||||
*/
|
||||
ol.layer.Base.prototype.getMinResolution = function() {
|
||||
return /** @type {number} */ (
|
||||
return /** @type {number|undefined} */ (
|
||||
this.get(ol.layer.LayerProperty.MIN_RESOLUTION));
|
||||
};
|
||||
goog.exportProperty(
|
||||
@@ -194,10 +196,11 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @return {number} Opacity.
|
||||
* @return {number|undefined} Opacity.
|
||||
*/
|
||||
ol.layer.Base.prototype.getOpacity = function() {
|
||||
return /** @type {number} */ (this.get(ol.layer.LayerProperty.OPACITY));
|
||||
return /** @type {number|undefined} */ (
|
||||
this.get(ol.layer.LayerProperty.OPACITY));
|
||||
};
|
||||
goog.exportProperty(
|
||||
ol.layer.Base.prototype,
|
||||
@@ -206,10 +209,11 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @return {number} Saturation.
|
||||
* @return {number|undefined} Saturation.
|
||||
*/
|
||||
ol.layer.Base.prototype.getSaturation = function() {
|
||||
return /** @type {number} */ (this.get(ol.layer.LayerProperty.SATURATION));
|
||||
return /** @type {number|undefined} */ (
|
||||
this.get(ol.layer.LayerProperty.SATURATION));
|
||||
};
|
||||
goog.exportProperty(
|
||||
ol.layer.Base.prototype,
|
||||
@@ -224,10 +228,11 @@ ol.layer.Base.prototype.getSourceState = goog.abstractMethod;
|
||||
|
||||
|
||||
/**
|
||||
* @return {boolean} Visible.
|
||||
* @return {boolean|undefined} Visible.
|
||||
*/
|
||||
ol.layer.Base.prototype.getVisible = function() {
|
||||
return /** @type {boolean} */ (this.get(ol.layer.LayerProperty.VISIBLE));
|
||||
return /** @type {boolean|undefined} */ (
|
||||
this.get(ol.layer.LayerProperty.VISIBLE));
|
||||
};
|
||||
goog.exportProperty(
|
||||
ol.layer.Base.prototype,
|
||||
@@ -253,7 +258,7 @@ goog.exportProperty(
|
||||
* [2] https://github.com/WebKit/webkit/commit/8f4765e569
|
||||
* [3] https://www.w3.org/Bugs/Public/show_bug.cgi?id=15647
|
||||
*
|
||||
* @param {number} brightness Brightness.
|
||||
* @param {number|undefined} brightness Brightness.
|
||||
*/
|
||||
ol.layer.Base.prototype.setBrightness = function(brightness) {
|
||||
this.set(ol.layer.LayerProperty.BRIGHTNESS, brightness);
|
||||
@@ -269,7 +274,7 @@ goog.exportProperty(
|
||||
* grey. A value of 1 will leave the contrast unchanged. Other values are
|
||||
* linear multipliers on the effect (and values over 1 are permitted).
|
||||
*
|
||||
* @param {number} contrast Contrast.
|
||||
* @param {number|undefined} contrast Contrast.
|
||||
*/
|
||||
ol.layer.Base.prototype.setContrast = function(contrast) {
|
||||
this.set(ol.layer.LayerProperty.CONTRAST, contrast);
|
||||
@@ -283,7 +288,7 @@ goog.exportProperty(
|
||||
/**
|
||||
* Apply a hue-rotation to the layer. A value of 0 will leave the hue
|
||||
* unchanged. Other values are radians around the color circle.
|
||||
* @param {number} hue Hue.
|
||||
* @param {number|undefined} hue Hue.
|
||||
*/
|
||||
ol.layer.Base.prototype.setHue = function(hue) {
|
||||
this.set(ol.layer.LayerProperty.HUE, hue);
|
||||
@@ -295,7 +300,7 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @param {number} maxResolution MaxResolution.
|
||||
* @param {number|undefined} maxResolution MaxResolution.
|
||||
*/
|
||||
ol.layer.Base.prototype.setMaxResolution = function(maxResolution) {
|
||||
this.set(ol.layer.LayerProperty.MAX_RESOLUTION, maxResolution);
|
||||
@@ -307,7 +312,7 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @param {number} minResolution MinResolution.
|
||||
* @param {number|undefined} minResolution MinResolution.
|
||||
*/
|
||||
ol.layer.Base.prototype.setMinResolution = function(minResolution) {
|
||||
this.set(ol.layer.LayerProperty.MIN_RESOLUTION, minResolution);
|
||||
@@ -319,7 +324,7 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @param {number} opacity Opacity.
|
||||
* @param {number|undefined} opacity Opacity.
|
||||
*/
|
||||
ol.layer.Base.prototype.setOpacity = function(opacity) {
|
||||
this.set(ol.layer.LayerProperty.OPACITY, opacity);
|
||||
@@ -336,7 +341,7 @@ goog.exportProperty(
|
||||
* values are linear multipliers of the effect (and values over 1 are
|
||||
* permitted).
|
||||
*
|
||||
* @param {number} saturation Saturation.
|
||||
* @param {number|undefined} saturation Saturation.
|
||||
*/
|
||||
ol.layer.Base.prototype.setSaturation = function(saturation) {
|
||||
this.set(ol.layer.LayerProperty.SATURATION, saturation);
|
||||
@@ -348,7 +353,7 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} visible Visible.
|
||||
* @param {boolean|undefined} visible Visible.
|
||||
*/
|
||||
ol.layer.Base.prototype.setVisible = function(visible) {
|
||||
this.set(ol.layer.LayerProperty.VISIBLE, visible);
|
||||
|
||||
@@ -10,6 +10,7 @@ goog.require('ol.Collection');
|
||||
goog.require('ol.CollectionEvent');
|
||||
goog.require('ol.CollectionEventType');
|
||||
goog.require('ol.Object');
|
||||
goog.require('ol.ObjectEventType');
|
||||
goog.require('ol.layer.Base');
|
||||
goog.require('ol.source.State');
|
||||
|
||||
@@ -104,7 +105,8 @@ ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
|
||||
for (i = 0, ii = layersArray.length; i < ii; i++) {
|
||||
layer = layersArray[i];
|
||||
this.listenerKeys_[goog.getUid(layer).toString()] =
|
||||
goog.events.listen(layer, goog.events.EventType.CHANGE,
|
||||
goog.events.listen(layer,
|
||||
[ol.ObjectEventType.PROPERTYCHANGE, goog.events.EventType.CHANGE],
|
||||
this.handleLayerChange_, false, this);
|
||||
}
|
||||
}
|
||||
@@ -120,8 +122,8 @@ ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
|
||||
ol.layer.Group.prototype.handleLayersAdd_ = function(collectionEvent) {
|
||||
var layer = /** @type {ol.layer.Base} */ (collectionEvent.getElement());
|
||||
this.listenerKeys_[goog.getUid(layer).toString()] = goog.events.listen(
|
||||
layer, goog.events.EventType.CHANGE, this.handleLayerChange_, false,
|
||||
this);
|
||||
layer, [ol.ObjectEventType.PROPERTYCHANGE, goog.events.EventType.CHANGE],
|
||||
this.handleLayerChange_, false, this);
|
||||
this.dispatchChangeEvent();
|
||||
};
|
||||
|
||||
@@ -140,11 +142,11 @@ ol.layer.Group.prototype.handleLayersRemove_ = function(collectionEvent) {
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.Collection} Collection of layers.
|
||||
* @return {ol.Collection|undefined} Collection of layers.
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.layer.Group.prototype.getLayers = function() {
|
||||
return /** @type {ol.Collection} */ (this.get(
|
||||
return /** @type {ol.Collection|undefined} */ (this.get(
|
||||
ol.layer.GroupProperty.LAYERS));
|
||||
};
|
||||
goog.exportProperty(
|
||||
@@ -154,7 +156,7 @@ goog.exportProperty(
|
||||
|
||||
|
||||
/**
|
||||
* @param {ol.Collection} layers Collection of layers.
|
||||
* @param {ol.Collection|undefined} layers Collection of layers.
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.layer.Group.prototype.setLayers = function(layers) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
goog.provide('ol.layer.Tile');
|
||||
|
||||
goog.require('ol.layer.Layer');
|
||||
goog.require('ol.source.Tile');
|
||||
|
||||
|
||||
/**
|
||||
@@ -44,14 +43,6 @@ goog.exportProperty(
|
||||
ol.layer.Tile.prototype.getPreload);
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.source.Tile} Source.
|
||||
*/
|
||||
ol.layer.Tile.prototype.getTileSource = function() {
|
||||
return /** @type {ol.source.Tile} */ (this.getSource());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {number} preload Preload.
|
||||
* @todo stability experimental
|
||||
|
||||
@@ -39,6 +39,7 @@ goog.require('ol.MapBrowserEventHandler');
|
||||
goog.require('ol.MapEvent');
|
||||
goog.require('ol.MapEventType');
|
||||
goog.require('ol.Object');
|
||||
goog.require('ol.ObjectEvent');
|
||||
goog.require('ol.ObjectEventType');
|
||||
goog.require('ol.Pixel');
|
||||
goog.require('ol.PostRenderFunction');
|
||||
@@ -208,9 +209,9 @@ ol.Map = function(options) {
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {goog.events.Key}
|
||||
* @type {Array.<goog.events.Key>}
|
||||
*/
|
||||
this.layerGroupPropertyListenerKey_ = null;
|
||||
this.layerGroupPropertyListenerKeys_ = null;
|
||||
|
||||
/**
|
||||
* @private
|
||||
@@ -603,11 +604,16 @@ goog.exportProperty(
|
||||
|
||||
/**
|
||||
* Get the collection of layers associated with this map.
|
||||
* @return {ol.Collection} Layers.
|
||||
* @return {ol.Collection|undefined} Layers.
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.Map.prototype.getLayers = function() {
|
||||
return this.getLayerGroup().getLayers();
|
||||
var layerGroup = this.getLayerGroup();
|
||||
if (goog.isDef(layerGroup)) {
|
||||
return layerGroup.getLayers();
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -643,7 +649,7 @@ goog.exportProperty(
|
||||
/**
|
||||
* Get the view associated with this map. This can be a 2D or 3D view. A 2D
|
||||
* view manages properties such as center and resolution.
|
||||
* @return {ol.View} View.
|
||||
* @return {ol.View|undefined} View.
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.Map.prototype.getView = function() {
|
||||
@@ -871,7 +877,7 @@ ol.Map.prototype.handleViewChanged_ = function() {
|
||||
var view = this.getView();
|
||||
if (goog.isDefAndNotNull(view)) {
|
||||
this.viewPropertyListenerKey_ = goog.events.listen(
|
||||
view, ol.ObjectEventType.CHANGE,
|
||||
view, ol.ObjectEventType.PROPERTYCHANGE,
|
||||
this.handleViewPropertyChanged_, false, this);
|
||||
}
|
||||
this.render();
|
||||
@@ -882,7 +888,18 @@ ol.Map.prototype.handleViewChanged_ = function() {
|
||||
* @param {goog.events.Event} event Event.
|
||||
* @private
|
||||
*/
|
||||
ol.Map.prototype.handleLayerGroupMemberChanged_ = function(event) {
|
||||
goog.asserts.assertInstanceof(event, goog.events.Event);
|
||||
this.render();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {ol.ObjectEvent} event Event.
|
||||
* @private
|
||||
*/
|
||||
ol.Map.prototype.handleLayerGroupPropertyChanged_ = function(event) {
|
||||
goog.asserts.assertInstanceof(event, ol.ObjectEvent);
|
||||
this.render();
|
||||
};
|
||||
|
||||
@@ -891,15 +908,23 @@ ol.Map.prototype.handleLayerGroupPropertyChanged_ = function(event) {
|
||||
* @private
|
||||
*/
|
||||
ol.Map.prototype.handleLayerGroupChanged_ = function() {
|
||||
if (!goog.isNull(this.layerGroupPropertyListenerKey_)) {
|
||||
goog.events.unlistenByKey(this.layerGroupPropertyListenerKey_);
|
||||
this.layerGroupPropertyListenerKey_ = null;
|
||||
if (!goog.isNull(this.layerGroupPropertyListenerKeys_)) {
|
||||
var length = this.layerGroupPropertyListenerKeys_.length;
|
||||
for (var i = 0; i < length; ++i) {
|
||||
goog.events.unlistenByKey(this.layerGroupPropertyListenerKeys_[i]);
|
||||
}
|
||||
this.layerGroupPropertyListenerKeys_ = null;
|
||||
}
|
||||
var layerGroup = this.getLayerGroup();
|
||||
if (goog.isDefAndNotNull(layerGroup)) {
|
||||
this.layerGroupPropertyListenerKey_ = goog.events.listen(
|
||||
layerGroup, ol.ObjectEventType.CHANGE,
|
||||
this.handleLayerGroupPropertyChanged_, false, this);
|
||||
this.layerGroupPropertyListenerKeys_ = [
|
||||
goog.events.listen(
|
||||
layerGroup, ol.ObjectEventType.PROPERTYCHANGE,
|
||||
this.handleLayerGroupPropertyChanged_, false, this),
|
||||
goog.events.listen(
|
||||
layerGroup, goog.events.EventType.CHANGE,
|
||||
this.handleLayerGroupMemberChanged_, false, this)
|
||||
];
|
||||
}
|
||||
this.render();
|
||||
};
|
||||
|
||||
@@ -7,3 +7,6 @@
|
||||
@exportProperty ol.Object.prototype.setValues
|
||||
@exportProperty ol.Object.prototype.unbind
|
||||
@exportProperty ol.Object.prototype.unbindAll
|
||||
|
||||
@exportSymbol ol.ObjectEvent
|
||||
@exportProperty ol.ObjectEvent.prototype.getKey
|
||||
|
||||
@@ -6,10 +6,12 @@
|
||||
*/
|
||||
|
||||
goog.provide('ol.Object');
|
||||
goog.provide('ol.ObjectEvent');
|
||||
goog.provide('ol.ObjectEventType');
|
||||
|
||||
goog.require('goog.array');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.Event');
|
||||
goog.require('goog.functions');
|
||||
goog.require('goog.object');
|
||||
goog.require('ol.Observable');
|
||||
@@ -19,7 +21,40 @@ goog.require('ol.Observable');
|
||||
* @enum {string}
|
||||
*/
|
||||
ol.ObjectEventType = {
|
||||
CHANGE: 'change'
|
||||
BEFOREPROPERTYCHANGE: 'beforepropertychange',
|
||||
PROPERTYCHANGE: 'propertychange'
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Object representing a property change event.
|
||||
*
|
||||
* @param {string} type The event type.
|
||||
* @param {string} key The property name.
|
||||
* @extends {goog.events.Event}
|
||||
* @constructor
|
||||
*/
|
||||
ol.ObjectEvent = function(type, key) {
|
||||
goog.base(this, type);
|
||||
|
||||
/**
|
||||
* The name of the property whose value is changing.
|
||||
* @type {string}
|
||||
* @private
|
||||
*/
|
||||
this.key_ = key;
|
||||
|
||||
};
|
||||
goog.inherits(ol.ObjectEvent, goog.events.Event);
|
||||
|
||||
|
||||
/**
|
||||
* Get the name of the property associated with this event.
|
||||
* @return {string} Object property name.
|
||||
*/
|
||||
ol.ObjectEvent.prototype.getKey = function() {
|
||||
return this.key_;
|
||||
};
|
||||
|
||||
|
||||
@@ -94,6 +129,13 @@ ol.Object = function(opt_values) {
|
||||
*/
|
||||
this.values_ = {};
|
||||
|
||||
/**
|
||||
* Lookup of beforechange listener keys.
|
||||
* @type {Object.<string, goog.events.Key>}
|
||||
* @private
|
||||
*/
|
||||
this.beforeChangeListeners_ = {};
|
||||
|
||||
if (goog.isDef(opt_values)) {
|
||||
this.setValues(opt_values);
|
||||
}
|
||||
@@ -216,11 +258,20 @@ ol.Object.getSetterName = function(key) {
|
||||
ol.Object.prototype.bindTo = function(key, target, opt_targetKey) {
|
||||
var targetKey = opt_targetKey || key;
|
||||
this.unbind(key);
|
||||
|
||||
// listen for change:targetkey events
|
||||
var eventType = ol.Object.getChangeEventType(targetKey);
|
||||
var listeners = ol.Object.getListeners(this);
|
||||
listeners[key] = goog.events.listen(target, eventType, function() {
|
||||
this.notifyInternal_(key);
|
||||
}, undefined, this);
|
||||
|
||||
// listen for beforechange events and relay if key matches
|
||||
this.beforeChangeListeners_[key] = goog.events.listen(target,
|
||||
ol.ObjectEventType.BEFOREPROPERTYCHANGE,
|
||||
this.createBeforeChangeListener_(key, targetKey),
|
||||
undefined, this);
|
||||
|
||||
var accessor = new ol.ObjectAccessor(target, targetKey);
|
||||
var accessors = ol.Object.getAccessors(this);
|
||||
accessors[key] = accessor;
|
||||
@@ -229,6 +280,30 @@ ol.Object.prototype.bindTo = function(key, target, opt_targetKey) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Create a listener for beforechange events on a target object. This listener
|
||||
* will relay events on this object if the event key matches the provided target
|
||||
* key.
|
||||
* @param {string} key The key on this object whose value will be changing.
|
||||
* @param {string} targetKey The key on the target object.
|
||||
* @return {function(this: ol.Object, ol.ObjectEvent)} Listener.
|
||||
* @private
|
||||
*/
|
||||
ol.Object.prototype.createBeforeChangeListener_ = function(key, targetKey) {
|
||||
/**
|
||||
* Conditionally relay beforechange events if event key matches target key.
|
||||
* @param {ol.ObjectEvent} event The beforechange event from the target.
|
||||
* @this {ol.Object}
|
||||
*/
|
||||
return function(event) {
|
||||
if (event.getKey() === targetKey) {
|
||||
this.dispatchEvent(
|
||||
new ol.ObjectEvent(ol.ObjectEventType.BEFOREPROPERTYCHANGE, key));
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Gets a value.
|
||||
* @param {string} key Key name.
|
||||
@@ -331,7 +406,8 @@ ol.Object.prototype.notify = function(key) {
|
||||
ol.Object.prototype.notifyInternal_ = function(key) {
|
||||
var eventType = ol.Object.getChangeEventType(key);
|
||||
this.dispatchEvent(eventType);
|
||||
this.dispatchEvent(ol.ObjectEventType.CHANGE);
|
||||
this.dispatchEvent(
|
||||
new ol.ObjectEvent(ol.ObjectEventType.PROPERTYCHANGE, key));
|
||||
};
|
||||
|
||||
|
||||
@@ -342,6 +418,8 @@ ol.Object.prototype.notifyInternal_ = function(key) {
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.Object.prototype.set = function(key, value) {
|
||||
this.dispatchEvent(
|
||||
new ol.ObjectEvent(ol.ObjectEventType.BEFOREPROPERTYCHANGE, key));
|
||||
var accessors = ol.Object.getAccessors(this);
|
||||
if (accessors.hasOwnProperty(key)) {
|
||||
var accessor = accessors[key];
|
||||
@@ -397,6 +475,13 @@ ol.Object.prototype.unbind = function(key) {
|
||||
delete accessors[key];
|
||||
this.values_[key] = value;
|
||||
}
|
||||
|
||||
// unregister any beforechange listener
|
||||
var listenerKey = this.beforeChangeListeners_[key];
|
||||
if (listenerKey) {
|
||||
goog.events.unlistenByKey(listenerKey);
|
||||
delete this.beforeChangeListeners_[key];
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
goog.provide('ol.renderer.canvas.ImageLayer');
|
||||
|
||||
goog.require('goog.asserts');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('goog.vec.Mat4');
|
||||
@@ -9,6 +10,7 @@ goog.require('ol.ViewHint');
|
||||
goog.require('ol.layer.Image');
|
||||
goog.require('ol.renderer.Map');
|
||||
goog.require('ol.renderer.canvas.Layer');
|
||||
goog.require('ol.source.Image');
|
||||
goog.require('ol.vec.Mat4');
|
||||
|
||||
|
||||
@@ -48,15 +50,6 @@ ol.renderer.canvas.ImageLayer.prototype.getImage = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
* @return {ol.layer.Image} Single image layer.
|
||||
*/
|
||||
ol.renderer.canvas.ImageLayer.prototype.getImageLayer = function() {
|
||||
return /** @type {ol.layer.Image} */ (this.getLayer());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@@ -77,8 +70,10 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame =
|
||||
var viewRotation = view2DState.rotation;
|
||||
|
||||
var image;
|
||||
var imageLayer = this.getImageLayer();
|
||||
var imageSource = imageLayer.getImageSource();
|
||||
var imageLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
|
||||
var imageSource = imageLayer.getSource();
|
||||
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
|
||||
|
||||
var hints = frameState.viewHints;
|
||||
|
||||
|
||||
@@ -137,10 +137,11 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) {
|
||||
var layerStates = frameState.layerStates;
|
||||
var layersArray = frameState.layersArray;
|
||||
var viewResolution = frameState.view2DState.resolution;
|
||||
var canvasLayerRenderer, i, ii, layer, layerState;
|
||||
var i, ii, layer, layerRenderer, layerState;
|
||||
for (i = 0, ii = layersArray.length; i < ii; ++i) {
|
||||
layer = layersArray[i];
|
||||
canvasLayerRenderer = this.getCanvasLayerRenderer(layer);
|
||||
layerRenderer = this.getLayerRenderer(layer);
|
||||
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.canvas.Layer);
|
||||
layerState = layerStates[goog.getUid(layer)];
|
||||
if (!layerState.visible ||
|
||||
layerState.sourceState != ol.source.State.READY ||
|
||||
@@ -148,8 +149,8 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) {
|
||||
viewResolution < layerState.minResolution) {
|
||||
continue;
|
||||
}
|
||||
canvasLayerRenderer.prepareFrame(frameState, layerState);
|
||||
canvasLayerRenderer.composeFrame(frameState, layerState, context);
|
||||
layerRenderer.prepareFrame(frameState, layerState);
|
||||
layerRenderer.composeFrame(frameState, layerState, context);
|
||||
}
|
||||
|
||||
this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE, frameState);
|
||||
|
||||
@@ -18,6 +18,7 @@ goog.require('ol.extent');
|
||||
goog.require('ol.layer.Tile');
|
||||
goog.require('ol.renderer.Map');
|
||||
goog.require('ol.renderer.canvas.Layer');
|
||||
goog.require('ol.source.Tile');
|
||||
goog.require('ol.vec.Mat4');
|
||||
|
||||
|
||||
@@ -86,15 +87,6 @@ ol.renderer.canvas.TileLayer.prototype.getImage = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
* @return {ol.layer.Tile} Tile layer.
|
||||
*/
|
||||
ol.renderer.canvas.TileLayer.prototype.getTileLayer = function() {
|
||||
return /** @type {ol.layer.Tile} */ (this.getLayer());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@@ -175,8 +167,10 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame =
|
||||
var view2DState = frameState.view2DState;
|
||||
var projection = view2DState.projection;
|
||||
|
||||
var tileLayer = this.getTileLayer();
|
||||
var tileSource = tileLayer.getTileSource();
|
||||
var tileLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
|
||||
var tileSource = tileLayer.getSource();
|
||||
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
|
||||
var tileGrid = tileSource.getTileGrid();
|
||||
if (goog.isNull(tileGrid)) {
|
||||
tileGrid = ol.tilegrid.getForProjection(projection);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
goog.provide('ol.renderer.dom.ImageLayer');
|
||||
|
||||
goog.require('goog.asserts');
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.dom.TagName');
|
||||
goog.require('goog.events');
|
||||
@@ -11,6 +12,7 @@ goog.require('ol.ViewHint');
|
||||
goog.require('ol.dom');
|
||||
goog.require('ol.layer.Image');
|
||||
goog.require('ol.renderer.dom.Layer');
|
||||
goog.require('ol.source.Image');
|
||||
goog.require('ol.vec.Mat4');
|
||||
|
||||
|
||||
@@ -36,7 +38,7 @@ ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) {
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {goog.vec.Mat4.AnyType}
|
||||
* @type {goog.vec.Mat4.Number}
|
||||
*/
|
||||
this.transform_ = goog.vec.Mat4.createNumberIdentity();
|
||||
|
||||
@@ -44,15 +46,6 @@ ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) {
|
||||
goog.inherits(ol.renderer.dom.ImageLayer, ol.renderer.dom.Layer);
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
* @return {ol.layer.Image} Image layer.
|
||||
*/
|
||||
ol.renderer.dom.ImageLayer.prototype.getImageLayer = function() {
|
||||
return /** @type {ol.layer.Image} */ (this.getLayer());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@@ -65,8 +58,10 @@ ol.renderer.dom.ImageLayer.prototype.prepareFrame =
|
||||
var viewRotation = view2DState.rotation;
|
||||
|
||||
var image = this.image_;
|
||||
var imageLayer = this.getImageLayer();
|
||||
var imageSource = imageLayer.getImageSource();
|
||||
var imageLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
|
||||
var imageSource = imageLayer.getSource();
|
||||
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
|
||||
|
||||
var hints = frameState.viewHints;
|
||||
|
||||
@@ -115,7 +110,7 @@ ol.renderer.dom.ImageLayer.prototype.prepareFrame =
|
||||
|
||||
|
||||
/**
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @private
|
||||
*/
|
||||
ol.renderer.dom.ImageLayer.prototype.setTransform_ = function(transform) {
|
||||
|
||||
@@ -9,6 +9,7 @@ goog.require('ol.layer.Image');
|
||||
goog.require('ol.layer.Tile');
|
||||
goog.require('ol.renderer.Map');
|
||||
goog.require('ol.renderer.dom.ImageLayer');
|
||||
goog.require('ol.renderer.dom.Layer');
|
||||
goog.require('ol.renderer.dom.TileLayer');
|
||||
goog.require('ol.source.State');
|
||||
|
||||
@@ -93,8 +94,8 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) {
|
||||
var layerKey;
|
||||
for (layerKey in this.getLayerRenderers()) {
|
||||
if (!(layerKey in layerStates)) {
|
||||
layerRenderer = /** @type {ol.renderer.dom.Layer} */
|
||||
(this.getLayerRendererByKey(layerKey));
|
||||
layerRenderer = this.getLayerRendererByKey(layerKey);
|
||||
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.dom.Layer);
|
||||
goog.dom.removeNode(layerRenderer.getTarget());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ goog.require('ol.dom');
|
||||
goog.require('ol.extent');
|
||||
goog.require('ol.layer.Tile');
|
||||
goog.require('ol.renderer.dom.Layer');
|
||||
goog.require('ol.source.Tile');
|
||||
goog.require('ol.tilegrid.TileGrid');
|
||||
goog.require('ol.vec.Mat4');
|
||||
|
||||
@@ -66,15 +67,6 @@ ol.renderer.dom.TileLayer = function(mapRenderer, tileLayer) {
|
||||
goog.inherits(ol.renderer.dom.TileLayer, ol.renderer.dom.Layer);
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
* @return {ol.layer.Tile} Tile layer.
|
||||
*/
|
||||
ol.renderer.dom.TileLayer.prototype.getTileLayer = function() {
|
||||
return /** @type {ol.layer.Tile} */ (this.getLayer());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@@ -92,8 +84,10 @@ ol.renderer.dom.TileLayer.prototype.prepareFrame =
|
||||
var view2DState = frameState.view2DState;
|
||||
var projection = view2DState.projection;
|
||||
|
||||
var tileLayer = this.getTileLayer();
|
||||
var tileSource = tileLayer.getTileSource();
|
||||
var tileLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
|
||||
var tileSource = tileLayer.getSource();
|
||||
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
|
||||
var tileGrid = tileSource.getTileGrid();
|
||||
if (goog.isNull(tileGrid)) {
|
||||
tileGrid = ol.tilegrid.getForProjection(projection);
|
||||
@@ -309,7 +303,7 @@ ol.renderer.dom.TileLayerZ_ = function(tileGrid, tileCoordOrigin) {
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {goog.vec.Mat4.AnyType}
|
||||
* @type {goog.vec.Mat4.Number}
|
||||
*/
|
||||
this.transform_ = goog.vec.Mat4.createNumberIdentity();
|
||||
|
||||
@@ -418,7 +412,7 @@ ol.renderer.dom.TileLayerZ_.prototype.removeTilesOutsideExtent =
|
||||
|
||||
|
||||
/**
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
*/
|
||||
ol.renderer.dom.TileLayerZ_.prototype.setTransform = function(transform) {
|
||||
if (!ol.vec.Mat4.equals2D(transform, this.transform_)) {
|
||||
|
||||
@@ -20,6 +20,8 @@ goog.require('ol.source.Tile');
|
||||
* @extends {goog.Disposable}
|
||||
* @param {ol.renderer.Map} mapRenderer Map renderer.
|
||||
* @param {ol.layer.Layer} layer Layer.
|
||||
* @suppress {checkStructDictInheritance}
|
||||
* @struct
|
||||
*/
|
||||
ol.renderer.Layer = function(mapRenderer, layer) {
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ goog.require('ol.vec.Mat4');
|
||||
* @extends {goog.Disposable}
|
||||
* @param {Element} container Container.
|
||||
* @param {ol.Map} map Map.
|
||||
* @suppress {checkStructDictInheritance}
|
||||
* @struct
|
||||
*/
|
||||
ol.renderer.Map = function(container, map) {
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ goog.require('ol.ImageState');
|
||||
goog.require('ol.ViewHint');
|
||||
goog.require('ol.layer.Image');
|
||||
goog.require('ol.renderer.webgl.Layer');
|
||||
goog.require('ol.source.Image');
|
||||
|
||||
|
||||
|
||||
@@ -71,15 +72,6 @@ ol.renderer.webgl.ImageLayer.prototype.createTexture_ = function(image) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
* @return {ol.layer.Image} Tile layer.
|
||||
*/
|
||||
ol.renderer.webgl.ImageLayer.prototype.getImageLayer = function() {
|
||||
return /** @type {ol.layer.Image} */ (this.getLayer());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@@ -95,8 +87,10 @@ ol.renderer.webgl.ImageLayer.prototype.prepareFrame =
|
||||
|
||||
var image = this.image_;
|
||||
var texture = this.texture;
|
||||
var imageLayer = this.getImageLayer();
|
||||
var imageSource = imageLayer.getImageSource();
|
||||
var imageLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
|
||||
var imageSource = imageLayer.getSource();
|
||||
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
|
||||
|
||||
var hints = frameState.viewHints;
|
||||
|
||||
|
||||
@@ -363,17 +363,6 @@ ol.renderer.webgl.Map.prototype.getTileTextureQueue = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {ol.layer.Layer} layer Layer.
|
||||
* @return {ol.renderer.webgl.Layer} WebGL layer renderer.
|
||||
*/
|
||||
ol.renderer.webgl.Map.prototype.getWebGLLayerRenderer = function(layer) {
|
||||
var layerRenderer = this.getLayerRenderer(layer);
|
||||
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
|
||||
return /** @type {ol.renderer.webgl.Layer} */ (layerRenderer);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {goog.events.Event} event Event.
|
||||
* @protected
|
||||
@@ -482,7 +471,8 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
|
||||
|
||||
for (i = 0, ii = layersToDraw.length; i < ii; ++i) {
|
||||
layer = layersToDraw[i];
|
||||
layerRenderer = this.getWebGLLayerRenderer(layer);
|
||||
layerRenderer = this.getLayerRenderer(layer);
|
||||
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
|
||||
layerState = frameState.layerStates[goog.getUid(layer)];
|
||||
layerRenderer.prepareFrame(frameState, layerState);
|
||||
}
|
||||
@@ -505,7 +495,8 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
|
||||
for (i = 0, ii = layersToDraw.length; i < ii; ++i) {
|
||||
layer = layersToDraw[i];
|
||||
layerState = frameState.layerStates[goog.getUid(layer)];
|
||||
layerRenderer = this.getWebGLLayerRenderer(layer);
|
||||
layerRenderer = this.getLayerRenderer(layer);
|
||||
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
|
||||
layerRenderer.composeFrame(frameState, layerState, context);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
goog.provide('ol.renderer.webgl.TileLayer');
|
||||
|
||||
goog.require('goog.array');
|
||||
goog.require('goog.asserts');
|
||||
goog.require('goog.object');
|
||||
goog.require('goog.vec.Vec4');
|
||||
goog.require('goog.webgl');
|
||||
@@ -15,6 +16,7 @@ goog.require('ol.layer.Tile');
|
||||
goog.require('ol.math');
|
||||
goog.require('ol.renderer.webgl.Layer');
|
||||
goog.require('ol.renderer.webgl.tilelayer.shader');
|
||||
goog.require('ol.source.Tile');
|
||||
goog.require('ol.structs.Buffer');
|
||||
goog.require('ol.vec.Mat4');
|
||||
|
||||
@@ -93,15 +95,6 @@ ol.renderer.webgl.TileLayer.prototype.disposeInternal = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
* @return {ol.layer.Tile} Tile layer.
|
||||
*/
|
||||
ol.renderer.webgl.TileLayer.prototype.getTileLayer = function() {
|
||||
return /** @type {ol.layer.Tile} */ (this.getLayer());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@@ -124,8 +117,10 @@ ol.renderer.webgl.TileLayer.prototype.prepareFrame =
|
||||
var view2DState = frameState.view2DState;
|
||||
var projection = view2DState.projection;
|
||||
|
||||
var tileLayer = this.getTileLayer();
|
||||
var tileSource = tileLayer.getTileSource();
|
||||
var tileLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
|
||||
var tileSource = tileLayer.getSource();
|
||||
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
|
||||
var tileGrid = tileSource.getTileGrid();
|
||||
if (goog.isNull(tileGrid)) {
|
||||
tileGrid = ol.tilegrid.getForProjection(projection);
|
||||
|
||||
@@ -61,7 +61,7 @@ ol.vec.Mat4.equals2D = function(mat1, mat2) {
|
||||
* transformed vector into resultVec. The input vector is multiplied against the
|
||||
* upper 2x4 matrix omitting the projective component.
|
||||
*
|
||||
* @param {goog.vec.Mat4.AnyType} mat The matrix supplying the transformation.
|
||||
* @param {goog.vec.Mat4.Number} mat The matrix supplying the transformation.
|
||||
* @param {Array.<number>} vec The 3 element vector to transform.
|
||||
* @param {Array.<number>} resultVec The 3 element vector to receive the results
|
||||
* (may be vec).
|
||||
|
||||
@@ -47,13 +47,31 @@ ol.View.prototype.getHints = function() {
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
ol.View.prototype.getView2D = goog.abstractMethod;
|
||||
ol.View.prototype.getView2D = function() {
|
||||
// FIXME for some reason, we can't use goog.abstractMethod here
|
||||
goog.asserts.fail();
|
||||
return null;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
ol.View.prototype.getView3D = goog.abstractMethod;
|
||||
ol.View.prototype.getView3D = function() {
|
||||
// FIXME for some reason, we can't use goog.abstractMethod here
|
||||
goog.asserts.fail();
|
||||
return null;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
ol.View.prototype.isDef = function() {
|
||||
// FIXME for some reason, we can't use goog.abstractMethod here
|
||||
goog.asserts.fail();
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user