Merge pull request #1740 from tonio/interaction_api
Editing interaction api cleanup
This commit is contained in:
@@ -74,6 +74,13 @@ ol.interaction.Draw = function(options) {
|
||||
*/
|
||||
this.source_ = goog.isDef(options.source) ? options.source : null;
|
||||
|
||||
/**
|
||||
* Target collection for drawn features.
|
||||
* @type {ol.Collection}
|
||||
* @private
|
||||
*/
|
||||
this.features_ = goog.isDef(options.features) ? options.features : null;
|
||||
|
||||
/**
|
||||
* Pixel distance for snapping.
|
||||
* @type {number}
|
||||
@@ -473,6 +480,9 @@ ol.interaction.Draw.prototype.finishDrawing_ = function(event) {
|
||||
sketchFeature.setGeometry(new ol.geom.MultiPolygon([coordinates]));
|
||||
}
|
||||
|
||||
if (!goog.isNull(this.features_)) {
|
||||
this.features_.push(sketchFeature);
|
||||
}
|
||||
if (!goog.isNull(this.source_)) {
|
||||
this.source_.addFeature(sketchFeature);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ goog.provide('ol.interaction.Modify');
|
||||
|
||||
goog.require('goog.array');
|
||||
goog.require('goog.asserts');
|
||||
goog.require('goog.events');
|
||||
goog.require('ol.Collection');
|
||||
goog.require('ol.CollectionEventType');
|
||||
goog.require('ol.Feature');
|
||||
@@ -85,11 +86,19 @@ ol.interaction.Modify = function(options) {
|
||||
* @type {ol.FeatureOverlay}
|
||||
* @private
|
||||
*/
|
||||
this.overlay_ = options.featureOverlay;
|
||||
this.overlay_ = new ol.FeatureOverlay({
|
||||
style: options.style
|
||||
});
|
||||
|
||||
this.overlay_.getFeatures().listen(ol.CollectionEventType.ADD,
|
||||
/**
|
||||
* @type {ol.Collection}
|
||||
* @private
|
||||
*/
|
||||
this.features_ = options.features;
|
||||
|
||||
goog.events.listen(this.features_, ol.CollectionEventType.ADD,
|
||||
this.addFeature_, false, this);
|
||||
this.overlay_.getFeatures().listen(ol.CollectionEventType.REMOVE,
|
||||
goog.events.listen(this.features_, ol.CollectionEventType.REMOVE,
|
||||
this.removeFeature_, false, this);
|
||||
|
||||
/**
|
||||
@@ -315,8 +324,7 @@ ol.interaction.Modify.prototype.removeFeature_ = function(evt) {
|
||||
}
|
||||
// There remains only vertexFeature…
|
||||
if (!goog.isNull(this.vertexFeature_) &&
|
||||
this.overlay_.getFeatures().getLength() === 1 &&
|
||||
this.overlay_.getFeatures().getAt(0) == this.vertexFeature_) {
|
||||
this.features_.getLength() === 0) {
|
||||
this.overlay_.removeFeature(this.vertexFeature_);
|
||||
this.vertexFeature_ = null;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
@exportSymbol ol.interaction.Select
|
||||
@exportProperty ol.interaction.Select.prototype.getFeatureOverlay
|
||||
@exportProperty ol.interaction.Select.prototype.getFeatures
|
||||
@exportProperty ol.interaction.Select.prototype.setMap
|
||||
|
||||
@@ -69,18 +69,20 @@ ol.interaction.Select = function(options) {
|
||||
* @private
|
||||
* @type {ol.FeatureOverlay}
|
||||
*/
|
||||
this.featureOverlay_ = options.featureOverlay;
|
||||
this.featureOverlay_ = new ol.FeatureOverlay({
|
||||
style: options.style
|
||||
});
|
||||
|
||||
};
|
||||
goog.inherits(ol.interaction.Select, ol.interaction.Interaction);
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.FeatureOverlay} Feature overlay.
|
||||
* @return {ol.Collection} Features collection.
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.interaction.Select.prototype.getFeatureOverlay = function() {
|
||||
return this.featureOverlay_;
|
||||
ol.interaction.Select.prototype.getFeatures = function() {
|
||||
return this.featureOverlay_.getFeatures();
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user