Ticket #18127: 18127.14.patch
| File 18127.14.patch, 2.6 KB (added by , 7 years ago) |
|---|
-
src/org/openstreetmap/josm/data/validation/tests/SharpAngles.java
15 15 import org.openstreetmap.josm.data.osm.OsmPrimitive; 16 16 import org.openstreetmap.josm.data.osm.Way; 17 17 import org.openstreetmap.josm.data.osm.WaySegment; 18 import org.openstreetmap.josm.data.preferences.sources.ValidatorPrefHelper; 18 19 import org.openstreetmap.josm.data.validation.Severity; 19 20 import org.openstreetmap.josm.data.validation.Test; 20 21 import org.openstreetmap.josm.data.validation.TestError; … … 51 52 @Override 52 53 public void visit(Way way) { 53 54 if (!way.isUsable()) return; 54 if (way.hasKey("highway") && !way.hasTag("area", "yes") && 55 !ignoreHighways.contains(way.get("highway"))) { 55 if (shouldBeTestedForSharpAngles(way)) { 56 56 try { 57 57 checkWayForSharpAngles(way); 58 58 } catch (Exception e) { … … 63 63 } 64 64 65 65 /** 66 * Check whether or not a way should be checked for sharp angles 67 * @param way The way that needs to be checked 68 * @return {@code true} if the way should be checked. 69 */ 70 public boolean shouldBeTestedForSharpAngles(Way way) { 71 return (way.hasKey("highway") && !way.hasTag("area", "yes") && !way.hasKey("via_ferrata_scale") && 72 !ignoreHighways.contains(way.get("highway"))); 73 } 74 75 /** 66 76 * Check nodes in a way for sharp angles 67 77 * @param way A way to check for sharp angles 68 78 */ … … 108 118 } 109 119 110 120 private void createNearlyOverlappingError(double angle, Way way, OsmPrimitive primitive) { 111 TestError.Builder testError = TestError.builder(this, getSeverity(angle), SHARP_ANGLES) 112 .primitives(way) 113 .highlight(primitive) 114 .message(tr("Sharp angle")); 115 errors.add(testError.build()); 121 Severity severity = getSeverity(angle); 122 if ((ValidatorPrefHelper.PREF_OTHER.get() || ValidatorPrefHelper.PREF_OTHER_UPLOAD.get()) || !severity.equals(Severity.OTHER)) { 123 int addCode = severity.equals(Severity.OTHER) ? 1 : 0; 124 TestError.Builder testError = TestError.builder(this, severity, SHARP_ANGLES + addCode) 125 .primitives(way) 126 .highlight(primitive) 127 .message(tr("Sharp angle")); 128 errors.add(testError.build()); 129 } 116 130 } 117 131 118 132 private Severity getSeverity(double angle) {
