Ignore:
Timestamp:
2013-03-20T21:28:34+01:00 (12 years ago)
Author:
zverik
Message:

alpha version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/imagery_offset_db/src/iodb/OffsetInfoAction.java

    r29377 r29379  
    3535        StringBuilder sb = new StringBuilder();
    3636        if( offset instanceof ImageryOffset ) {
    37             double[] ld = getLengthAndDirection((ImageryOffset)offset);
    38             sb.append(tr("An imagery offset of {0} m to {1}", ld[0], explainDirection(ld[1]))).append('\n');
    39             sb.append("Imagery ID: ").append(((ImageryOffset)offset).getImagery());
    40         } else
    41             sb.append(tr("A calibration {0}", getGeometryType((CalibrationObject)offset)));
    42         sb.append("\n\nCreated by ").append(offset.getAuthor());
    43         sb.append(" on ").append(DATE_FORMAT.format(offset.getDate())).append("\n");
     37            double[] ld = ImageryOffsetTools.getLengthAndDirection((ImageryOffset)offset);
     38            sb.append(ld[0] < 1e-3 ? tr("An imagery offset of 0 mm") : tr("An imagery offset of {0} to {1}",
     39                    ImageryOffsetTools.formatDistance(ld[0]), explainDirection(ld[1]))).append('\n');
     40            sb.append("Imagery ID: ").append(((ImageryOffset)offset).getImagery()).append('\n');
     41        } else {
     42            sb.append(tr("A calibration {0}", getGeometryType((CalibrationObject)offset))).append('\n');
     43        }
     44       
     45        double dist = ImageryOffsetTools.getMapCenter().greatCircleDistance(offset.getPosition());
     46        double heading = dist < 1 ? 0.0 : ImageryOffsetTools.getMapCenter().heading(offset.getPosition());
     47        sb.append(dist < 10 ? tr("Determined right here") : tr("Determined at a point {0} to the {1}",
     48                ImageryOffsetTools.formatDistance(dist), explainDirection(heading)));
     49       
     50        sb.append('\n').append('\n');
     51        sb.append("Created by ").append(offset.getAuthor());
     52        sb.append(" on ").append(DATE_FORMAT.format(offset.getDate())).append('\n');
    4453        sb.append("Description: ").append(offset.getDescription());
     54       
    4555        if( offset.isDeprecated() ) {
    46             sb.append("\n\nThis geometry was marked obsolete\n");
     56            sb.append('\n').append('\n');
     57            sb.append("This geometry was marked obsolete").append('\n');
    4758            sb.append("by ").append(offset.getAbandonAuthor());
    48             sb.append(" on ").append(DATE_FORMAT.format(offset.getAbandonDate())).append("\n");
     59            sb.append(" on ").append(DATE_FORMAT.format(offset.getAbandonDate())).append('\n');
    4960            sb.append("Reason: ").append(offset.getAbandonReason());
    5061        }
     
    6677    }
    6778
    68     public static double[] getLengthAndDirection( ImageryOffset offset ) {
    69         return getLengthAndDirection(offset, 0.0, 0.0);
    70     }
    71 
    72     public static double[] getLengthAndDirection( ImageryOffset offset, double dx, double dy ) {
    73         double length = 0.0;
    74         double direction = 0.0;
    75         // todo: calculate length and angular direction
    76         return new double[] { length, direction };
    77     }
    78 
    7979    public static String explainDirection( double dir ) {
    80         return "nowhere"; // todo
     80        dir = dir * 8 / Math.PI;
     81        if( dir < 1 || dir >= 15 ) return tr("north");
     82        if( dir < 3 ) return tr("northeast");
     83        if( dir < 5 ) return tr("east");
     84        if( dir < 7 ) return tr("southeast");
     85        if( dir < 9 ) return tr("south");
     86        if( dir < 11 ) return tr("southwest");
     87        if( dir < 13 ) return tr("west");
     88        if( dir < 15 ) return tr("northwest");
     89        return "nowhere";
    8190    }
    8291}
Note: See TracChangeset for help on using the changeset viewer.