Ticket #16102: simplifyWay-performance.patch
| File simplifyWay-performance.patch, 1.7 KB (added by , 8 years ago) |
|---|
-
src/org/openstreetmap/josm/actions/SimplifyWayAction.java
140 140 * in order to simplify the way. 141 141 */ 142 142 protected static boolean isRequiredNode(Way way, Node node) { 143 int frequency = Collections.frequency(way.getNodes(), node); 144 if ((way.getNode(0) == node) && (way.getNode(way.getNodesCount()-1) == node)) { 145 frequency = frequency - 1; // closed way closing node counted only once 143 boolean isRequired = node.isTagged(); 144 if (!isRequired) { 145 int frequency = Collections.frequency(way.getNodes(), node); 146 if ((way.getNode(0) == node) && (way.getNode(way.getNodesCount()-1) == node)) { 147 frequency = frequency - 1; // closed way closing node counted only once 148 } 149 isRequired = frequency > 1; 146 150 } 147 boolean isRequired = frequency > 1;148 151 if (!isRequired) { 149 152 List<OsmPrimitive> parents = new LinkedList<>(); 150 153 parents.addAll(node.getReferrers()); … … 151 154 parents.remove(way); 152 155 isRequired = !parents.isEmpty(); 153 156 } 154 if (!isRequired) {155 isRequired = node.isTagged();156 }157 157 return isRequired; 158 158 } 159 159 … … 210 210 } 211 211 } 212 212 213 if (newNodes.size() == w.getNodesCount()) return null; 214 213 215 Set<Node> delNodes = new HashSet<>(); 214 216 delNodes.addAll(w.getNodes()); 215 217 delNodes.removeAll(newNodes);
