The map now has a collection of controls
This commit is contained in:
@@ -43,8 +43,8 @@
|
||||
/**
|
||||
* Object literal with config options for the map.
|
||||
* @typedef {Object} ol.MapOptions
|
||||
* @property {Array.<ol.control.Control>|undefined} controls Controls initially
|
||||
* added to the map.
|
||||
* @property {ol.Collection|Array.<ol.control.Control>|undefined} controls
|
||||
* Controls initially added to the map.
|
||||
* @property {ol.Collection|undefined} interactions Interactions.
|
||||
* @property {Array.<ol.layer.Layer>|ol.Collection|undefined} layers Layers.
|
||||
* @property {ol.RendererHint|undefined} renderer Renderer.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
goog.provide('ol.control.defaults');
|
||||
|
||||
goog.require('goog.array');
|
||||
goog.require('ol.Collection');
|
||||
goog.require('ol.control.Attribution');
|
||||
goog.require('ol.control.Logo');
|
||||
goog.require('ol.control.Zoom');
|
||||
@@ -9,14 +9,13 @@ goog.require('ol.control.Zoom');
|
||||
/**
|
||||
* @param {ol.control.DefaultsOptions=} opt_options Defaults options.
|
||||
* @param {Array.<ol.control.Control>=} opt_controls Additional controls.
|
||||
* @return {Array.<ol.control.Control>} Controls.
|
||||
* @return {ol.Collection} Controls.
|
||||
*/
|
||||
ol.control.defaults = function(opt_options, opt_controls) {
|
||||
|
||||
var options = goog.isDef(opt_options) ? opt_options : {};
|
||||
|
||||
/** @type {Array.<ol.control.Control>} */
|
||||
var controls = [];
|
||||
var controls = new ol.Collection();
|
||||
|
||||
var attributionControl = goog.isDef(options.attribution) ?
|
||||
options.attribution : true;
|
||||
@@ -43,7 +42,7 @@ ol.control.defaults = function(opt_options, opt_controls) {
|
||||
}
|
||||
|
||||
if (goog.isDef(opt_controls)) {
|
||||
goog.array.extend(controls, opt_controls);
|
||||
controls.extend(opt_controls);
|
||||
}
|
||||
|
||||
return controls;
|
||||
|
||||
@@ -247,6 +247,12 @@ ol.Map = function(options) {
|
||||
this.handleBrowserEvent, false, this);
|
||||
this.registerDisposable(mouseWheelHandler);
|
||||
|
||||
/**
|
||||
* @type {ol.Collection}
|
||||
* @private
|
||||
*/
|
||||
this.controls_ = optionsInternal.controls;
|
||||
|
||||
/**
|
||||
* @type {ol.Collection}
|
||||
* @private
|
||||
@@ -320,15 +326,13 @@ ol.Map = function(options) {
|
||||
// is "defined" already.
|
||||
this.setValues(optionsInternal.values);
|
||||
|
||||
if (goog.isDef(optionsInternal.controls)) {
|
||||
goog.array.forEach(optionsInternal.controls,
|
||||
this.controls_.forEach(
|
||||
/**
|
||||
* @param {ol.control.Control} control Control.
|
||||
*/
|
||||
function(control) {
|
||||
control.setMap(this);
|
||||
}, this);
|
||||
}
|
||||
|
||||
};
|
||||
goog.inherits(ol.Map, ol.Object);
|
||||
@@ -434,6 +438,14 @@ ol.Map.prototype.getCoordinateFromPixel = function(pixel) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.Collection} Controls.
|
||||
*/
|
||||
ol.Map.prototype.getControls = function() {
|
||||
return this.controls_;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Get feature information for a pixel on the map.
|
||||
*
|
||||
@@ -997,7 +1009,7 @@ ol.Map.prototype.withFrozenRendering = function(f, opt_obj) {
|
||||
|
||||
|
||||
/**
|
||||
* @typedef {{controls: Array.<ol.control.Control>,
|
||||
* @typedef {{controls: ol.Collection,
|
||||
* interactions: ol.Collection,
|
||||
* rendererConstructor:
|
||||
* function(new: ol.renderer.Map, Element, ol.Map),
|
||||
@@ -1074,8 +1086,17 @@ ol.Map.createOptionsInternal = function(options) {
|
||||
}
|
||||
}
|
||||
|
||||
var controls = goog.isDef(options.controls) ?
|
||||
options.controls : ol.control.defaults();
|
||||
var controls;
|
||||
if (goog.isDef(options.controls)) {
|
||||
if (goog.isArray(options.controls)) {
|
||||
controls = new ol.Collection(goog.array.clone(options.controls));
|
||||
} else {
|
||||
goog.asserts.assertInstanceof(options.controls, ol.Collection);
|
||||
controls = options.controls;
|
||||
}
|
||||
} else {
|
||||
controls = ol.control.defaults();
|
||||
}
|
||||
|
||||
var interactions = goog.isDef(options.interactions) ?
|
||||
options.interactions : ol.interaction.defaults();
|
||||
|
||||
Reference in New Issue
Block a user