Support minPointsPerRing and default to 3
This commit is contained in:
@@ -415,6 +415,8 @@
|
|||||||
* drawing finish (default is 12).
|
* drawing finish (default is 12).
|
||||||
* @property {ol.geom.GeometryType} type Drawing type ('Point', 'LineString',
|
* @property {ol.geom.GeometryType} type Drawing type ('Point', 'LineString',
|
||||||
* 'Polygon', 'MultiPoint', 'MultiLineString', or 'MultiPolygon').
|
* 'Polygon', 'MultiPoint', 'MultiLineString', or 'MultiPolygon').
|
||||||
|
* @property {number|undefined} minPointsPerRing The number of points that must
|
||||||
|
* be drawn before a polygon ring can be finished (default is 3).
|
||||||
* @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style
|
* @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style
|
||||||
* Style for sketch features.
|
* Style for sketch features.
|
||||||
* @todo stability experimental
|
* @todo stability experimental
|
||||||
|
|||||||
@@ -89,6 +89,15 @@ ol.interaction.Draw = function(options) {
|
|||||||
this.snapTolerance_ = goog.isDef(options.snapTolerance) ?
|
this.snapTolerance_ = goog.isDef(options.snapTolerance) ?
|
||||||
options.snapTolerance : 12;
|
options.snapTolerance : 12;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of points that must be drawn before a polygon ring can be
|
||||||
|
* finished. The default is 3.
|
||||||
|
* @type {number}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
this.minPointsPerRing_ = goog.isDef(options.minPointsPerRing) ?
|
||||||
|
options.minPointsPerRing : 3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Geometry type.
|
* Geometry type.
|
||||||
* @type {ol.geom.GeometryType}
|
* @type {ol.geom.GeometryType}
|
||||||
@@ -314,7 +323,8 @@ ol.interaction.Draw.prototype.atFinish_ = function(event) {
|
|||||||
potentiallyDone = geometry.getCoordinates().length > 2;
|
potentiallyDone = geometry.getCoordinates().length > 2;
|
||||||
} else if (this.mode_ === ol.interaction.DrawMode.POLYGON) {
|
} else if (this.mode_ === ol.interaction.DrawMode.POLYGON) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.Polygon);
|
goog.asserts.assertInstanceof(geometry, ol.geom.Polygon);
|
||||||
potentiallyDone = geometry.getCoordinates()[0].length > 2;
|
potentiallyDone = geometry.getCoordinates()[0].length >
|
||||||
|
this.minPointsPerRing_;
|
||||||
potentiallyFinishCoordinates = [this.sketchRawPolygon_[0][0],
|
potentiallyFinishCoordinates = [this.sketchRawPolygon_[0][0],
|
||||||
this.sketchRawPolygon_[0][this.sketchRawPolygon_[0].length - 2]];
|
this.sketchRawPolygon_[0][this.sketchRawPolygon_[0].length - 2]];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user