Changeset 18 in josm for src/org/openstreetmap/josm/data
- Timestamp:
- 2005-10-09T20:06:06+02:00 (20 years ago)
- Location:
- src/org/openstreetmap/josm/data
- Files:
-
- 4 edited
-
GeoPoint.java (modified) (1 diff)
-
Preferences.java (modified) (4 diffs)
-
osm/DataSet.java (modified) (2 diffs)
-
osm/LineSegment.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/data/GeoPoint.java
r17 r18 58 58 return (x-other.x)*(x-other.x)+(y-other.y)*(y-other.y); 59 59 } 60 60 61 61 /** 62 62 * @return <code>true</code>, if the other GeoPoint has the same lat/lon values. 63 63 */ 64 64 public boolean equalsLatLon(GeoPoint other) { 65 return lat == other.lat && lon == other.lon; 65 return lat == other.lat && lon == other.lon && 66 !Double.isNaN(lat) && !Double.isNaN(lon); 66 67 } 67 68 } -
src/org/openstreetmap/josm/data/Preferences.java
r17 r18 45 45 private boolean drawRawGpsLines = false; 46 46 /** 47 * Force the drawing of lines between raw gps points if there are no 48 * lines in the imported document. 49 */ 50 private boolean forceRawGpsLines = false; 51 /** 47 52 * Whether nodes on the same place should be considered identical. 48 53 */ 49 54 public boolean mergeNodes = true; 50 51 55 56 /** 57 * Base URL to the osm data server 58 */ 59 public String osmDataServer = "http://www.openstreetmap.org/api/0.1"; 60 /** 61 * The username to the osm server 62 */ 63 public String osmDataUsername = ""; 64 /** 65 * The stored password or <code>null</code>, if the password should not be 66 * stored. 67 */ 68 public String osmDataPassword = null; 52 69 53 70 /** … … 105 122 } 106 123 124 Element osmServer = root.getChild("osm-server"); 125 if (osmServer != null) { 126 osmDataServer = osmServer.getChildText("url"); 127 osmDataUsername = osmServer.getChildText("username"); 128 osmDataPassword = osmServer.getChildText("password"); 129 } 107 130 mergeNodes = root.getChild("mergeNodes") != null; 108 131 drawRawGpsLines = root.getChild("drawRawGpsLines") != null; … … 129 152 if (drawRawGpsLines) 130 153 children.add(new Element("drawRawGpsLines")); 154 Element osmServer = new Element("osm-server"); 155 osmServer.getChildren().add(new Element("url").setText(osmDataServer)); 156 osmServer.getChildren().add(new Element("username").setText(osmDataUsername)); 157 osmServer.getChildren().add(new Element("password").setText(osmDataPassword)); 158 children.add(osmServer); 131 159 132 160 try { … … 200 228 return drawRawGpsLines; 201 229 } 230 public void setForceRawGpsLines(boolean forceRawGpsLines) { 231 boolean old = this.forceRawGpsLines; 232 this.forceRawGpsLines = forceRawGpsLines; 233 firePropertyChanged("forceRawGpsLines", old, forceRawGpsLines); 234 } 235 public boolean isForceRawGpsLines() { 236 return forceRawGpsLines; 237 } 202 238 } -
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.
