@@ -277,14 +277,14 @@ public void setGapMaximumWidth(double maxWidth) {
277
277
*/
278
278
public void clean () {
279
279
computeResultants (snappingDistance );
280
- System .out .format ("Overlaps: %d Gaps: %d\n " , overlaps .size (), mergableGaps .size ());
280
+ // System.out.format("Overlaps: %d Gaps: %d\n", overlaps.size(), mergableGaps.size());
281
281
282
- Stopwatch sw = new Stopwatch ();
282
+ // Stopwatch sw = new Stopwatch();
283
283
mergeOverlaps (overlapParentMap );
284
- System .out .println ("Merge Overlaps: " + sw .getTimeString ());
285
- sw .reset ();
284
+ // System.out.println("Merge Overlaps: " + sw.getTimeString());
285
+ // sw.reset();
286
286
cleanCov .mergeGaps (mergableGaps );
287
- System .out .println ("Merge Gaps: " + sw .getTimeString ());
287
+ // System.out.println("Merge Gaps: " + sw.getTimeString());
288
288
}
289
289
290
290
/**
@@ -348,28 +348,28 @@ private CleanCoverage.MergeStrategy mergeStrategy(int mergeStrategyId) {
348
348
}
349
349
350
350
private void computeResultants (double tolerance ) {
351
- System .out .println ("Coverage Cleaner ===> polygons: " + coverage .length );
352
- System .out .format ("Snapping distance: %f\n " , snappingDistance );
353
- Stopwatch sw = new Stopwatch ();
354
- sw .start ();
351
+ // System.out.println("Coverage Cleaner ===> polygons: " + coverage.length);
352
+ // System.out.format("Snapping distance: %f\n", snappingDistance);
353
+ // Stopwatch sw = new Stopwatch();
354
+ // sw.start();
355
355
356
356
Geometry nodedEdges = node (coverage , tolerance );
357
- System .out .println ("Noding: " + sw .getTimeString ());
357
+ // System.out.println("Noding: " + sw.getTimeString());
358
358
359
- sw .reset ();
359
+ // sw.reset();
360
360
Geometry cleanEdges = LineDissolver .dissolve (nodedEdges );
361
- System .out .println ("Dissolve: " + sw .getTimeString ());
361
+ // System.out.println("Dissolve: " + sw.getTimeString());
362
362
363
- sw .reset ();
363
+ // sw.reset();
364
364
resultants = polygonize (cleanEdges );
365
- System .out .println ("Polygonize: " + sw .getTimeString ());
365
+ // System.out.println("Polygonize: " + sw.getTimeString());
366
366
367
367
cleanCov = new CleanCoverage (coverage .length );
368
368
369
- sw .reset ();
369
+ // sw.reset();
370
370
createCoverageIndex ();
371
371
classifyResult (resultants );
372
- System .out .println ("Classify: " + sw .getTimeString ());
372
+ // System.out.println("Classify: " + sw.getTimeString());
373
373
374
374
mergableGaps = findMergableGaps (gaps );
375
375
}
@@ -446,30 +446,6 @@ private boolean isMergableGap(Polygon gap) {
446
446
}
447
447
return MaximumInscribedCircle .isRadiusWithin (gap , gapMaximumWidth / 2.0 );
448
448
}
449
-
450
- /*
451
- private List<Polygon> findSlivers(List<Polygon> gaps) {
452
- return gaps.stream().filter(gap -> isSliver(gap))
453
- .collect(Collectors.toList());
454
- }
455
-
456
- private static final double SLIVER_COMPACTNESS_RATIO = 0.05;
457
-
458
- private boolean isSliver(Geometry poly) {
459
- //TODO: add min area cutoff?
460
- //TODO: for low vertex count, check polygon width?
461
- if (poly.getNumPoints() <= 5)
462
- return true;
463
- return compactness(poly) < SLIVER_COMPACTNESS_RATIO;
464
- }
465
-
466
- private static double compactness(Geometry poly) {
467
- double perimeter = poly.getLength();
468
- double area = poly.getArea();
469
- if (perimeter <= 0) return 0;
470
- return Math.abs(area) * Math.PI * 4 / (perimeter * perimeter);
471
- }
472
- */
473
449
474
450
private static Polygon [] polygonize (Geometry cleanEdges ) {
475
451
Polygonizer polygonizer = new Polygonizer ();
0 commit comments