Changeset 17365 in osm for applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/SimplifyWay.java
- Timestamp:
- 2009-08-30T18:02:20+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/SimplifyWay.java
r16160 r17365 2 2 3 3 import java.util.ArrayList; 4 4 5 import java.util.Collection; 5 6 import java.util.Collections; 6 7 import java.util.HashSet; 7 8 import java.util.LinkedList; 9 import java.util.List; 8 10 9 11 import org.openstreetmap.josm.Main; … … 18 20 import static org.openstreetmap.josm.tools.I18n.trn; 19 21 22 23 20 24 /** 21 25 * Imported from plugin UtilsPlugin … … 27 31 Way wnew = new Way(w); 28 32 29 int toI = wnew. nodes.size() - 1;30 for (int i = wnew. nodes.size() - 1; i >= 0; i--) {33 int toI = wnew.getNodesCount() - 1; 34 for (int i = wnew.getNodesCount() - 1; i >= 0; i--) { 31 35 CollectBackReferencesVisitor backRefsV = new CollectBackReferencesVisitor(dataSet, false); 32 backRefsV.visit(wnew. nodes.get(i));36 backRefsV.visit(wnew.getNode(i)); 33 37 boolean used = false; 34 38 if (backRefsV.data.size() == 1) { 35 used = Collections.frequency(w. nodes, wnew.nodes.get(i)) > 1;39 used = Collections.frequency(w.getNodes(), wnew.getNode(i)) > 1; 36 40 } else { 37 41 backRefsV.data.remove(w); … … 39 43 } 40 44 if (!used) 41 used = wnew. nodes.get(i).isTagged();45 used = wnew.getNode(i).isTagged(); 42 46 43 47 if (used) { … … 49 53 50 54 HashSet<Node> delNodes = new HashSet<Node>(); 51 delNodes.addAll(w. nodes);52 delNodes.removeAll(wnew. nodes);55 delNodes.addAll(w.getNodes()); 56 delNodes.removeAll(wnew.getNodes()); 53 57 54 if (wnew. nodes.size() != w.nodes.size()) {58 if (wnew.getNodesCount() != w.getNodesCount()) { 55 59 Collection<Command> cmds = new LinkedList<Command>(); 56 60 cmds.add(new ChangeCommand(w, wnew)); … … 65 69 ArrayList<Node> ns = new ArrayList<Node>(); 66 70 simplifyWayRange(wnew, from, to, ns, thr); 71 List<Node> nodes = wnew.getNodes(); 67 72 for (int j = to - 1; j > from; j--) 68 wnew.nodes.remove(j); 69 wnew.nodes.addAll(from + 1, ns); 73 nodes.remove(j); 74 nodes.addAll(from+1, ns); 75 wnew.setNodes(nodes); 70 76 } 71 77 } … … 76 82 */ 77 83 public void simplifyWayRange(Way wnew, int from, int to, ArrayList<Node> ns, double thr) { 78 Node fromN = wnew. nodes.get(from), toN = wnew.nodes.get(to);84 Node fromN = wnew.getNode(from), toN = wnew.getNode(to); 79 85 80 86 int imax = -1; 81 87 double xtemax = 0; 82 88 for (int i = from + 1; i < to; i++) { 83 Node n = wnew. nodes.get(i);89 Node n = wnew.getNode(i); 84 90 double xte = Math.abs(EARTH_RAD 85 91 * xtd(fromN.getCoor().lat() * Math.PI / 180, fromN.getCoor().lon() * Math.PI / 180, toN.getCoor().lat() * Math.PI … … 94 100 if (imax != -1 && xtemax >= thr) { 95 101 simplifyWayRange(wnew, from, imax, ns, thr); 96 ns.add(wnew. nodes.get(imax));102 ns.add(wnew.getNode(imax)); 97 103 simplifyWayRange(wnew, imax, to, ns, thr); 98 104 }
Note:
See TracChangeset
for help on using the changeset viewer.
