Changeset 18 in josm for src/org/openstreetmap/josm/data/osm
- Timestamp:
- 2005-10-09T20:06:06+02:00 (18 years ago)
- Location:
- src/org/openstreetmap/josm/data/osm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/data/osm/DataSet.java
r17 r18 3 3 import java.util.Collection; 4 4 import java.util.Collections; 5 import java.util.HashMap; 5 6 import java.util.HashSet; 7 import java.util.Iterator; 6 8 import java.util.LinkedList; 9 import java.util.Map; 10 import java.util.Set; 7 11 8 12 import org.openstreetmap.josm.data.Bounds; … … 196 200 */ 197 201 public void mergeFrom(DataSet ds, boolean mergeEqualNodes) { 202 System.out.println(nodes.size()+" "+pendingLineSegments.size()+" "+tracks.size()); 198 203 if (mergeEqualNodes) { 199 LinkedList<Node> nodesToAdd = new LinkedList<Node>(); 200 for (Node n : ds.nodes) 201 for (Node mynode : nodes) { 202 if (mynode.coor.equalsLatLon(n.coor)) 203 mynode.mergeFrom(n); 204 else 205 nodesToAdd.add(n); 204 Map<Node, Node> mergeMap = new HashMap<Node, Node>(); 205 Set<Node> nodesToAdd = new HashSet<Node>(); 206 for (Node n : nodes) { 207 for (Iterator<Node> it = ds.nodes.iterator(); it.hasNext();) { 208 Node dsn = it.next(); 209 if (n.coor.equalsLatLon(dsn.coor)) { 210 mergeMap.put(dsn, n); 211 n.mergeFrom(dsn); 212 it.remove(); 213 } else { 214 nodesToAdd.add(dsn); 215 } 206 216 } 207 } else 217 } 218 nodes.addAll(nodesToAdd); 219 for (Track t : ds.tracks) { 220 for (LineSegment ls : t.segments()) { 221 Node n = mergeMap.get(ls.getStart()); 222 if (n != null) 223 ls.start = n; 224 n = mergeMap.get(ls.getEnd()); 225 if (n != null) 226 ls.end = n; 227 } 228 } 229 tracks.addAll(ds.tracks); 230 for (LineSegment ls : ds.pendingLineSegments) { 231 Node n = mergeMap.get(ls.getStart()); 232 if (n != null) 233 ls.start = n; 234 n = mergeMap.get(ls.getEnd()); 235 if (n != null) 236 ls.end = n; 237 } 238 pendingLineSegments.addAll(ds.pendingLineSegments); 239 } else { 208 240 nodes.addAll(ds.nodes); 209 tracks.addAll(ds.tracks); 210 pendingLineSegments.addAll(ds.pendingLineSegments); 241 tracks.addAll(ds.tracks); 242 pendingLineSegments.addAll(ds.pendingLineSegments); 243 } 244 System.out.println(nodes.size()+" "+pendingLineSegments.size()+" "+tracks.size()); 211 245 } 212 246 -
src/org/openstreetmap/josm/data/osm/LineSegment.java
r9 r18 18 18 * The starting node of the line segment 19 19 */ 20 privateNode start;20 Node start; 21 21 22 22 /** 23 23 * The ending node of the line segment 24 24 */ 25 privateNode end;25 Node end; 26 26 27 27 /**
Note:
See TracChangeset
for help on using the changeset viewer.