Merge pull request #10004 from tschaub/revisions

Return a new simplified geometry after modification
This commit is contained in:
Tim Schaub
2019-09-26 09:22:12 +02:00
committed by GitHub
2 changed files with 51 additions and 1 deletions

View File

@@ -60,12 +60,13 @@ class Geometry extends BaseObject {
/**
* Get a transformed and simplified version of the geometry.
* @abstract
* @param {number} revision The geometry revision.
* @param {number} squaredTolerance Squared tolerance.
* @param {import("../proj/Projection.js").default} [sourceProjection] The source projection.
* @param {import("../proj/Projection.js").default} [destProjection] The destination projection.
* @return {Geometry} Simplified geometry.
*/
this.simplifyTransformed = memoizeOne(function(squaredTolerance, sourceProjection, destProjection) {
this.simplifyTransformedInternal = memoizeOne(function(revision, squaredTolerance, sourceProjection, destProjection) {
if (!sourceProjection || !destProjection) {
return this.getSimplifiedGeometry(squaredTolerance);
}
@@ -77,6 +78,18 @@ class Geometry extends BaseObject {
}
/**
* Get a transformed and simplified version of the geometry.
* @abstract
* @param {number} squaredTolerance Squared tolerance.
* @param {import("../proj/Projection.js").default} sourceProjection The source projection.
* @param {import("../proj/Projection.js").default} destProjection The destination projection.
* @return {Geometry} Simplified geometry.
*/
simplifyTransformed(squaredTolerance, sourceProjection, destProjection) {
return this.simplifyTransformedInternal(this.getRevision(), squaredTolerance, sourceProjection, destProjection);
}
/**
* Make a complete copy of the geometry.
* @abstract