Currently the animation functions share the same module, namely ol.animation. We do differently for ol.control.defaults and ol.interaction.defaults, with ol.control.defaults and ol.interaction.defaults module. This commit replaces the ol.animation module by four modules, one for each animation function.
This makes things more consistent, and will make it possible to use the @exportFunction annotation for the exporting of the animation functions.
This commit adds a new export annotation: @exportFunction. @exportFunction is to be used to declare functions that take an options object literal as their first arguments. @exportFunction is to regular functions as @exportClass is to constructors.
The usage of @exportFunction is as follows:
@exportFunction ol.control.defaults ol.control.DefaultsOptions ol.Collection
Note: the Function#export method uses a recursive function. This is to handle nested options.
Currently we have things like like in the generated externs file (types.js):
/**
* @type {ol.control.AttributionOptions|undefined}
*/
olx.control.DefaultsOptionsExtern.prototype.attributionOptions;
It doesn't make sense to have external object properties whose types are
internal (ol.control.AttributionOptions in the above example).
With this commit, the generate-exports.py script generates this:
/**
* @type {olx.control.AttributionOptionsExtern|undefined}
*/
olx.control.DefaultsOptionsExtern.prototype.attributionOptions;
When a style has no rules, the "else" symbolizers apply. When a style has rules and none of them apply to the given feature, the "else" symbolizers apply. Note that this is different than default symbolizer properties that might be merged into all symbolizers (as in OL2) - I don't think we should support that.
Layer renderers should not be responsible for listening to layer
properties change and triggering a render.
Layer change events are now forwarded to the map which will trigger a render.
Vector layers will now dispatch ol.layer.VectorLayerEventType.ADD and
ol.layer.VectorLayerEventType.REMOVE event types instead of the generic
goog.events.EventType.CHANGE event type.
This will fix a maximum call stack size exceeded javascript error.