Changeset 1722 in josm for trunk/src/org/openstreetmap/josm/data/osm
- Timestamp:
- 2009-07-03T12:33:32+02:00 (16 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/data/osm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/Node.java
r1690 r1722 8 8 import org.openstreetmap.josm.data.coor.LatLon; 9 9 import org.openstreetmap.josm.data.coor.LatLon.CoordinateFormat; 10 import org.openstreetmap.josm.data.projection.Projection; 10 11 import org.openstreetmap.josm.data.osm.visitor.Visitor; 12 import org.openstreetmap.josm.data.osm.Node; 11 13 12 14 … … 18 20 public final class Node extends OsmPrimitive { 19 21 20 public LatLon coor; 21 public volatile EastNorth eastNorth; 22 private LatLon coor; 23 24 private EastNorth eastNorth; 25 private Projection proj; 26 22 27 23 28 public final void setCoor(LatLon coor) { 24 29 this.coor = coor; 25 this.eastNorth = Main.proj.latlon2eastNorth(coor);30 proj = null; 26 31 } 27 32 … … 31 36 32 37 public final void setEastNorth(EastNorth eastNorth) { 33 this.eastNorth = eastNorth; 34 this.coor = Main.proj.eastNorth2latlon(eastNorth); 35 } 36 37 public final void setEastNorth(double east, double north) { 38 this.setEastNorth(new EastNorth(east, north)); 38 proj = Main.proj; 39 eastNorth = eastNorth; 40 this.coor = proj.eastNorth2latlon(eastNorth); 39 41 } 40 42 41 43 public final EastNorth getEastNorth() { 44 if(proj != Main.proj) 45 { 46 proj = Main.proj; 47 eastNorth = proj.latlon2eastNorth(coor); 48 } 42 49 return eastNorth; 43 50 } … … 45 52 private static CoordinateFormat mCord; 46 53 47 static { 54 static public CoordinateFormat getCoordinateFormat() 55 { 56 return mCord; 57 } 58 59 static public void setCoordinateFormat() 60 { 48 61 try { 49 62 mCord = LatLon.CoordinateFormat.valueOf(Main.pref.get("coordinates")); 50 63 } catch (IllegalArgumentException iae) { 51 mCord =LatLon.CoordinateFormat.DECIMAL_DEGREES; 64 mCord = LatLon.CoordinateFormat.DECIMAL_DEGREES; 52 65 } 66 } 67 68 static { 69 setCoordinateFormat(); 53 70 } 54 71 … … 72 89 } 73 90 91 public Node(EastNorth eastNorth) { 92 setEastNorth(eastNorth); 93 } 94 74 95 @Override public void visit(Visitor visitor) { 75 96 visitor.visit(this); … … 78 99 @Override public void cloneFrom(OsmPrimitive osm) { 79 100 super.cloneFrom(osm); 80 coor = ((Node)osm).coor; 81 eastNorth = ((Node)osm).eastNorth; 101 setCoor(((Node)osm).coor); 82 102 } 83 103 -
trunk/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java
r1640 r1722 4 4 import org.openstreetmap.josm.Main; 5 5 import org.openstreetmap.josm.data.Bounds; 6 import org.openstreetmap.josm.data.ProjectionBounds; 6 7 import org.openstreetmap.josm.data.coor.EastNorth; 7 8 import org.openstreetmap.josm.data.coor.LatLon; … … 19 20 public class BoundingXYVisitor extends AbstractVisitor { 20 21 21 p ublic EastNorth min, max;22 private ProjectionBounds bounds = null; 22 23 23 24 public void visit(Node n) { … … 38 39 } 39 40 41 public void visit(Bounds b) { 42 if(b != null) 43 { 44 visit(Main.proj.latlon2eastNorth(b.min)); 45 visit(Main.proj.latlon2eastNorth(b.max)); 46 } 47 } 48 49 public void visit(ProjectionBounds b) { 50 if(b != null) 51 bounds = new ProjectionBounds(b.min, b.max); 52 } 53 40 54 public void visit(EastNorth eastNorth) { 41 55 if (eastNorth != null) { 42 if (min == null) 43 min = eastNorth; 44 else if (eastNorth.east() < min.east() || eastNorth.north() < min.north()) 45 min = new EastNorth(Math.min(min.east(), eastNorth.east()), Math.min(min.north(), eastNorth.north())); 56 if (bounds == null) 57 bounds = new ProjectionBounds(eastNorth, eastNorth); 58 else 59 bounds.extend(eastNorth); 60 } 61 } 46 62 47 if (max == null) 48 max = eastNorth; 49 else if (eastNorth.east() > max.east() || eastNorth.north() > max.north()) 50 max = new EastNorth(Math.max(max.east(), eastNorth.east()), Math.max(max.north(), eastNorth.north())); 51 } 63 public boolean hasExtend() 64 { 65 return bounds != null && !bounds.min.equals(bounds.max); 52 66 } 53 67 … … 55 69 * @return The bounding box or <code>null</code> if no coordinates have passed 56 70 */ 57 public Bounds getBounds() { 58 if (min == null || max == null) 59 return null; 60 return new Bounds(Main.proj.eastNorth2latlon(min), Main.proj.eastNorth2latlon(max)); 71 public ProjectionBounds getBounds() { 72 return bounds; 61 73 } 62 74 … … 78 90 */ 79 91 public void enlargeBoundingBox(double enlargeDegree) { 80 if ( min == null || max== null)92 if (bounds == null) 81 93 return; 82 LatLon minLatlon = Main.proj.eastNorth2latlon(min); 83 min = Main.proj.latlon2eastNorth(new LatLon(minLatlon.lat() - enlargeDegree, minLatlon.lon() - enlargeDegree)); 84 LatLon maxLatlon = Main.proj.eastNorth2latlon(max); 85 max = Main.proj.latlon2eastNorth(new LatLon(maxLatlon.lat() + enlargeDegree, maxLatlon.lon() + enlargeDegree)); 94 LatLon minLatlon = Main.proj.eastNorth2latlon(bounds.min); 95 LatLon maxLatlon = Main.proj.eastNorth2latlon(bounds.max); 96 bounds = new ProjectionBounds( 97 Main.proj.latlon2eastNorth(new LatLon(minLatlon.lat() - enlargeDegree, minLatlon.lon() - enlargeDegree)), 98 Main.proj.latlon2eastNorth(new LatLon(maxLatlon.lat() + enlargeDegree, maxLatlon.lon() + enlargeDegree))); 86 99 } 87 100 } -
trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
r1696 r1722 1274 1274 useRealWidth = Main.pref.getBoolean("mappaint.useRealWidth",false); 1275 1275 zoomLevelDisplay = Main.pref.getBoolean("mappaint.zoomLevelDisplay",false); 1276 circum = Main.map.mapView.getScale() *100*Main.proj.scaleFactor()*40041455; /* circumference of the earth in meter */1276 circum = Main.map.mapView.getMapScale(); 1277 1277 styles = MapPaintStyles.getStyles().getStyleSet(); 1278 1278 drawMultipolygon = Main.pref.getBoolean("mappaint.multipolygon",true);
Note:
See TracChangeset
for help on using the changeset viewer.