Changeset 16162 in osm for applications/editors/josm/plugins/utilsplugin/src/UtilsPlugin/JoinAreasAction.java
- Timestamp:
- 2009-06-26T22:11:40+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/utilsplugin/src/UtilsPlugin/JoinAreasAction.java
r15960 r16162 3 3 import static org.openstreetmap.josm.tools.I18n.marktr; 4 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 import static org.openstreetmap.josm.tools.I18n.trn; 6 5 6 import java.awt.GridBagLayout; 7 import java.awt.Polygon; 7 8 import java.awt.event.ActionEvent; 8 9 import java.awt.event.KeyEvent; 9 10 import java.awt.geom.Line2D; 10 import java.awt.geom.Point2D;11 import java.awt.GridBagLayout;12 import java.awt.Point;13 import java.awt.Polygon;14 15 11 import java.util.ArrayList; 16 import java.util.Arrays;17 12 import java.util.Collection; 18 13 import java.util.Collections; 19 import java.util.Comparator;20 14 import java.util.HashMap; 21 15 import java.util.LinkedList; 22 16 import java.util.List; 23 17 import java.util.Map; 24 import java.util.Map.Entry;25 18 import java.util.Set; 26 19 import java.util.TreeMap; 27 20 import java.util.TreeSet; 21 import java.util.Map.Entry; 28 22 29 23 import javax.swing.Box; … … 33 27 import javax.swing.JPanel; 34 28 29 import org.openstreetmap.josm.Main; 35 30 import org.openstreetmap.josm.actions.CombineWayAction; 36 31 import org.openstreetmap.josm.actions.JosmAction; 37 32 import org.openstreetmap.josm.actions.ReverseWayAction; 38 33 import org.openstreetmap.josm.actions.SplitWayAction; 39 40 34 import org.openstreetmap.josm.command.AddCommand; 41 35 import org.openstreetmap.josm.command.ChangeCommand; … … 43 37 import org.openstreetmap.josm.command.DeleteCommand; 44 38 import org.openstreetmap.josm.command.SequenceCommand; 45 46 39 import org.openstreetmap.josm.data.Bounds; 40 import org.openstreetmap.josm.data.UndoRedoHandler; 47 41 import org.openstreetmap.josm.data.coor.EastNorth; 48 42 import org.openstreetmap.josm.data.coor.LatLon; … … 54 48 import org.openstreetmap.josm.data.osm.RelationMember; 55 49 import org.openstreetmap.josm.data.osm.TigerUtils; 56 import org.openstreetmap.josm.data.osm.visitor.CollectBackReferencesVisitor;57 50 import org.openstreetmap.josm.data.osm.Way; 58 import org.openstreetmap.josm.data.osm.WaySegment;59 import org.openstreetmap.josm.data.projection.Epsg4326;60 import org.openstreetmap.josm.data.projection.Lambert;61 import org.openstreetmap.josm.data.projection.Mercator;62 import org.openstreetmap.josm.data.UndoRedoHandler;63 64 51 import org.openstreetmap.josm.gui.ExtendedDialog; 65 52 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 66 import org.openstreetmap.josm.Main;67 53 import org.openstreetmap.josm.tools.GBC; 68 import org.openstreetmap.josm.tools.Pair;69 54 import org.openstreetmap.josm.tools.Shortcut; 70 55 … … 83 68 this.pos = pos; 84 69 this.n = n; 85 this.dis = n. coor.greatCircleDistance(dis);70 this.dis = n.getCoor().greatCircleDistance(dis); 86 71 } 87 72 … … 160 145 boolean isInsideOneBoundingBox = false; 161 146 for (Bounds b : bounds) { 162 if (b.contains(node. coor)) {147 if (b.contains(node.getCoor())) { 163 148 isInsideOneBoundingBox = true; 164 149 break; … … 362 347 } 363 348 LatLon intersection = getLineLineIntersection( 364 a.nodes.get(i) . eastNorth.east(), a.nodes.get(i) .eastNorth.north(),365 a.nodes.get(i+1). eastNorth.east(), a.nodes.get(i+1).eastNorth.north(),366 b.nodes.get(j) . eastNorth.east(), b.nodes.get(j) .eastNorth.north(),367 b.nodes.get(j+1). eastNorth.east(), b.nodes.get(j+1).eastNorth.north());349 a.nodes.get(i) .getEastNorth().east(), a.nodes.get(i) .getEastNorth().north(), 350 a.nodes.get(i+1).getEastNorth().east(), a.nodes.get(i+1).getEastNorth().north(), 351 b.nodes.get(j) .getEastNorth().east(), b.nodes.get(j) .getEastNorth().north(), 352 b.nodes.get(j+1).getEastNorth().east(), b.nodes.get(j+1).getEastNorth().north()); 368 353 if(intersection == null) continue; 369 354 … … 373 358 nodes.add(n); 374 359 // The distance is needed to sort and add the nodes in direction of the way 375 nodesA.add(new NodeToSegs(i, n, a.nodes.get(i). coor));360 nodesA.add(new NodeToSegs(i, n, a.nodes.get(i).getCoor())); 376 361 if(same) 377 nodesA.add(new NodeToSegs(j, n, a.nodes.get(j). coor));362 nodesA.add(new NodeToSegs(j, n, a.nodes.get(j).getCoor())); 378 363 else 379 nodesB.add(new NodeToSegs(j, n, b.nodes.get(j). coor));364 nodesB.add(new NodeToSegs(j, n, b.nodes.get(j).getCoor())); 380 365 } 381 366 } … … 423 408 private void addNodesToWay(Way a, ArrayList<NodeToSegs> nodes) { 424 409 Way ax=new Way(a); 425 List<NodeToSegs> newnodes = new ArrayList<NodeToSegs>();426 410 Collections.sort(nodes); 427 411 … … 539 523 for(Way w: multigonWays) { 540 524 Polygon poly = new Polygon(); 541 for(Node n: ( (Way)w).nodes) poly.addPoint(latlonToXY(n.coor.lat()), latlonToXY(n.coor.lon()));525 for(Node n: (w).nodes) poly.addPoint(latlonToXY(n.getCoor().lat()), latlonToXY(n.getCoor().lon())); 542 526 543 527 for(Node n: multigonNodes) { 544 if(!( (Way)w).nodes.contains(n) && poly.contains(latlonToXY(n.coor.lat()), latlonToXY(n.coor.lon()))) {528 if(!(w).nodes.contains(n) && poly.contains(latlonToXY(n.getCoor().lat()), latlonToXY(n.getCoor().lon()))) { 545 529 getWaysByNode(innerWays, multigonWays, n); 546 530 } … … 564 548 private void getWaysByNode(Collection<Way> innerWays, Collection<Way> w, Node n) { 565 549 for(Way way : w) { 566 if(!( (Way)way).nodes.contains(n)) continue;550 if(!(way).nodes.contains(n)) continue; 567 551 if(!innerWays.contains(way)) innerWays.add(way); // Will need this later for multigons 568 552 }
Note:
See TracChangeset
for help on using the changeset viewer.