Get rid of ol.FeatureOverlay
This also introduces a wrapX option to the Draw, Modify and Select interaction.
This commit is contained in:
@@ -8,10 +8,11 @@ goog.require('goog.events.Event');
|
||||
goog.require('goog.functions');
|
||||
goog.require('ol.CollectionEventType');
|
||||
goog.require('ol.Feature');
|
||||
goog.require('ol.FeatureOverlay');
|
||||
goog.require('ol.events.condition');
|
||||
goog.require('ol.geom.GeometryType');
|
||||
goog.require('ol.interaction.Interaction');
|
||||
goog.require('ol.layer.Vector');
|
||||
goog.require('ol.source.Vector');
|
||||
goog.require('ol.style.Style');
|
||||
|
||||
|
||||
@@ -73,7 +74,7 @@ goog.inherits(ol.SelectEvent, goog.events.Event);
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* Handles selection of vector data. A {@link ol.FeatureOverlay} is maintained
|
||||
* Handles selection of vector data. An {@link ol.source.Vector} is maintained
|
||||
* internally to store the selected feature(s). Which features are selected is
|
||||
* determined by the `condition` option, and optionally the `toggle` or
|
||||
* `add`/`remove` options.
|
||||
@@ -160,14 +161,18 @@ ol.interaction.Select = function(opt_options) {
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {ol.FeatureOverlay}
|
||||
* @type {ol.layer.Vector}
|
||||
*/
|
||||
this.featureOverlay_ = new ol.FeatureOverlay({
|
||||
this.featureOverlay_ = new ol.layer.Vector({
|
||||
source: new ol.source.Vector({
|
||||
useSpatialIndex: false,
|
||||
wrapX: options.wrapX
|
||||
}),
|
||||
style: goog.isDef(options.style) ? options.style :
|
||||
ol.interaction.Select.getDefaultStyleFunction()
|
||||
});
|
||||
|
||||
var features = this.featureOverlay_.getFeatures();
|
||||
var features = this.featureOverlay_.getSource().getFeaturesCollection();
|
||||
goog.events.listen(features, ol.CollectionEventType.ADD,
|
||||
this.addFeature_, false, this);
|
||||
goog.events.listen(features, ol.CollectionEventType.REMOVE,
|
||||
@@ -183,7 +188,7 @@ goog.inherits(ol.interaction.Select, ol.interaction.Interaction);
|
||||
* @api stable
|
||||
*/
|
||||
ol.interaction.Select.prototype.getFeatures = function() {
|
||||
return this.featureOverlay_.getFeatures();
|
||||
return this.featureOverlay_.getSource().getFeaturesCollection();
|
||||
};
|
||||
|
||||
|
||||
@@ -204,7 +209,7 @@ ol.interaction.Select.handleEvent = function(mapBrowserEvent) {
|
||||
var toggle = this.toggleCondition_(mapBrowserEvent);
|
||||
var set = !add && !remove && !toggle;
|
||||
var map = mapBrowserEvent.map;
|
||||
var features = this.featureOverlay_.getFeatures();
|
||||
var features = this.featureOverlay_.getSource().getFeaturesCollection();
|
||||
var /** @type {Array.<ol.Feature>} */ deselected = [];
|
||||
var /** @type {Array.<ol.Feature>} */ selected = [];
|
||||
var change = false;
|
||||
@@ -280,7 +285,8 @@ ol.interaction.Select.handleEvent = function(mapBrowserEvent) {
|
||||
*/
|
||||
ol.interaction.Select.prototype.setMap = function(map) {
|
||||
var currentMap = this.getMap();
|
||||
var selectedFeatures = this.featureOverlay_.getFeatures();
|
||||
var selectedFeatures =
|
||||
this.featureOverlay_.getSource().getFeaturesCollection();
|
||||
if (!goog.isNull(currentMap)) {
|
||||
selectedFeatures.forEach(currentMap.unskipFeature, currentMap);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user