Changeset 23887 in osm for applications/editors
- Timestamp:
- 2010-10-27T23:34:30+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditContainer.java ¶
r23884 r23887 64 64 private List<AddressNode> incompleteAddresses = new ArrayList<AddressNode>(100); 65 65 66 private HashSet<Node> visitedNodes = new HashSet<Node>(); 67 private HashSet<Way> visitedWays = new HashSet<Way>(); 66 68 private HashSet<String> tags = new HashSet<String>(); 67 69 … … 100 102 } 101 103 104 private void markNodeAsVisited(Node n) { 105 visitedNodes.add(n); 106 } 107 108 private boolean hasBeenVisited(Node n) { 109 return visitedNodes.contains(n); 110 } 111 112 private void markWayAsVisited(Way w) { 113 visitedWays.add(w); 114 } 115 116 private boolean hasBeenVisited(Way w) { 117 return visitedWays.contains(w); 118 } 119 102 120 /* (non-Javadoc) 103 121 * @see org.openstreetmap.josm.data.osm.visitor.Visitor#visit(org.openstreetmap.josm.data.osm.Node) … … 105 123 @Override 106 124 public void visit(Node n) { 125 if (hasBeenVisited(n)) { 126 return; 127 } 128 107 129 AddressNode aNode = NodeFactory.createNode(n); 108 130 109 if (aNode == null) return; 110 111 if (!assignAddressToStreet(aNode)) { 112 // Assignment failed: Street is not known (yet) -> add to 'unresolved' list 113 unresolvedAddresses.add(aNode); 114 } 115 116 if (!aNode.isComplete()) { 117 incompleteAddresses.add(aNode); 118 } 131 if (aNode != null) { 132 if (!assignAddressToStreet(aNode)) { 133 // Assignment failed: Street is not known (yet) -> add to 'unresolved' list 134 unresolvedAddresses.add(aNode); 135 } 136 137 if (!aNode.isComplete()) { 138 incompleteAddresses.add(aNode); 139 } 140 } else { 141 // check, if node is referred by a way 142 for (OsmPrimitive osm : n.getReferrers()) { 143 if (osm instanceof Way) { 144 Way w = (Way) osm; 145 if (!hasBeenVisited(w)) { 146 createNodeFromWay(w); 147 } 148 } 149 } 150 151 } 152 markNodeAsVisited(n); 119 153 } 120 154 … … 124 158 @Override 125 159 public void visit(Way w) { 126 if (w.isIncomplete()) return; 127 160 // This doesn't matter, we just need the street name 161 //if (w.isIncomplete()) return; 162 163 createNodeFromWay(w); 164 /* 165 for (Node n : w.getNodes()) { 166 167 }*/ 168 } 169 170 private void createNodeFromWay(Way w) { 128 171 StreetSegmentNode newSegment = NodeFactory.createNodeFromWay(w); 129 172 … … 149 192 } 150 193 194 markWayAsVisited(w); 195 196 // Look also into nodes for addresses (unlikely, but at least they 197 // get marked as visited). 198 for (Node n : w.getNodes()) { 199 visit(n); 200 } 201 151 202 for (String key : w.keySet()) { 152 203 if (!tags.contains(key)) { … … 154 205 } 155 206 } 156 /*157 for (Node n : w.getNodes()) {158 159 }*/160 207 } 161 208 … … 289 336 unresolvedAddresses.clear(); 290 337 incompleteAddresses.clear(); 338 visitedNodes.clear(); 339 visitedWays.clear(); 291 340 } 292 341
Note:
See TracChangeset
for help on using the changeset viewer.