Ignore:
Timestamp:
2016-09-03T16:18:15+02:00 (9 years ago)
Author:
donvip
Message:

replace tabs by spaces

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/seachart/jbasemap/src/jbasemap/Jbasemap.java

    r32082 r32906  
    3131public class Jbasemap {
    3232
    33         static String src;
    34         static String dst;
    35         static Context context;
    36         static S57map map;
    37         static int zoom;
    38         static double z2;
     33    static String src;
     34    static String dst;
     35    static Context context;
     36    static S57map map;
     37    static int zoom;
     38    static double z2;
    3939
    40         static class Context implements ChartContext {
    41                
    42           static double top = 0;
    43           static double mile = 0;
    44          
    45           public Context () {
    46                         top = (1.0 - Math.log(Math.tan(map.bounds.maxlat) + 1.0 / Math.cos(map.bounds.maxlat)) / Math.PI) / 2.0 * 256.0 * z2;
    47                         mile = 256 / ((Math.toDegrees(map.bounds.maxlat) - Math.toDegrees(map.bounds.minlat)) * 60);
    48           }
    49          
    50                 public Point2D getPoint(Snode coord) {
    51                         double x = (Math.toDegrees(coord.lon) - Math.toDegrees(map.bounds.minlon)) * 256.0 * (z2 / 2) / 180.0;
    52                         double y = ((1.0 - Math.log(Math.tan(coord.lat) + 1.0 / Math.cos(coord.lat)) / Math.PI) / 2.0 * 256.0 * z2) - top;
    53                         return new Point2D.Double(x, y);
    54                 }
     40    static class Context implements ChartContext {
     41       
     42      static double top = 0;
     43      static double mile = 0;
     44     
     45      public Context () {
     46            top = (1.0 - Math.log(Math.tan(map.bounds.maxlat) + 1.0 / Math.cos(map.bounds.maxlat)) / Math.PI) / 2.0 * 256.0 * z2;
     47            mile = 256 / ((Math.toDegrees(map.bounds.maxlat) - Math.toDegrees(map.bounds.minlat)) * 60);
     48      }
     49     
     50        public Point2D getPoint(Snode coord) {
     51            double x = (Math.toDegrees(coord.lon) - Math.toDegrees(map.bounds.minlon)) * 256.0 * (z2 / 2) / 180.0;
     52            double y = ((1.0 - Math.log(Math.tan(coord.lat) + 1.0 / Math.cos(coord.lat)) / Math.PI) / 2.0 * 256.0 * z2) - top;
     53            return new Point2D.Double(x, y);
     54        }
    5555
    56                 public double mile(Feature feature) {
    57                         return mile;
    58                 }
     56        public double mile(Feature feature) {
     57            return mile;
     58        }
    5959
    60                 public boolean clip() {
    61                         return true;
    62                 }
     60        public boolean clip() {
     61            return true;
     62        }
    6363
    64                 public Color background(S57map map) {
    65                         if (map.features.containsKey(Obj.COALNE)) {
    66                                 for (Feature feature : map.features.get(Obj.COALNE)) {
    67                                         if (feature.geom.prim == Pflag.POINT) {
    68                                                 break;
    69                                         }
    70                                         GeomIterator git = map.new GeomIterator(feature.geom);
    71                                         git.nextComp();
    72                                         while (git.hasEdge()) {
    73                                                 git.nextEdge();
    74                                                 while (git.hasNode()) {
    75                                                         Snode node = git.next();
    76                                                         if (node == null)
    77                                                                 continue;
    78                                                         if ((node.lat >= map.bounds.minlat) && (node.lat <= map.bounds.maxlat) && (node.lon >= map.bounds.minlon) && (node.lon <= map.bounds.maxlon)) {
    79                                                                 return Symbols.Bwater;
    80                                                         }
    81                                                 }
    82                                         }
    83                                 }
    84                                 return Symbols.Yland;
    85                         } else {
    86                                 if (map.features.containsKey(Obj.ROADWY) || map.features.containsKey(Obj.RAILWY) || map.features.containsKey(Obj.LAKARE) || map.features.containsKey(Obj.RIVERS) || map.features.containsKey(Obj.CANALS)) {
    87                                         return Symbols.Yland;
    88                                 } else {
    89                                         return Symbols.Bwater;
    90                                 }
    91                         }
    92                 }
     64        public Color background(S57map map) {
     65            if (map.features.containsKey(Obj.COALNE)) {
     66                for (Feature feature : map.features.get(Obj.COALNE)) {
     67                    if (feature.geom.prim == Pflag.POINT) {
     68                        break;
     69                    }
     70                    GeomIterator git = map.new GeomIterator(feature.geom);
     71                    git.nextComp();
     72                    while (git.hasEdge()) {
     73                        git.nextEdge();
     74                        while (git.hasNode()) {
     75                            Snode node = git.next();
     76                            if (node == null)
     77                                continue;
     78                            if ((node.lat >= map.bounds.minlat) && (node.lat <= map.bounds.maxlat) && (node.lon >= map.bounds.minlon) && (node.lon <= map.bounds.maxlon)) {
     79                                return Symbols.Bwater;
     80                            }
     81                        }
     82                    }
     83                }
     84                return Symbols.Yland;
     85            } else {
     86                if (map.features.containsKey(Obj.ROADWY) || map.features.containsKey(Obj.RAILWY) || map.features.containsKey(Obj.LAKARE) || map.features.containsKey(Obj.RIVERS) || map.features.containsKey(Obj.CANALS)) {
     87                    return Symbols.Yland;
     88                } else {
     89                    return Symbols.Bwater;
     90                }
     91            }
     92        }
    9393
    94                 public RuleSet ruleset() {
    95                         return RuleSet.BASE;
    96                 }
    97         }
    98        
    99         public static void main(String[] args) throws IOException {
    100                 if (args.length < 5) {
    101                         System.err.println("Usage: java -jar jbasemap.jar OSM_file SVG_file zoom xtile ytile");
    102                         System.exit(-1);
    103                 }
    104                 src = args[0];
    105                 dst = args[1];
    106                 zoom = Integer.parseInt(args[2]);
    107                 z2 = Math.pow(2, zoom);
    108                 double scale = 0.1;
    109                 try {
    110                         BufferedReader in = new BufferedReader(new FileReader(src));
    111                         map = new S57map(false);
    112                         try {
    113                                 S57osm.OSMmap(in, map, true);
    114                         } catch (Exception e) {
    115                                 System.err.println("Input data error");
    116                                 System.exit(-1);
    117                         }
    118                         in.close();
    119                 } catch (IOException e) {
    120                         System.err.println("Input file: " + e.getMessage());
    121                         System.exit(-1);
    122                 }
    123                 map.bounds.maxlat = Math.atan(Math.sinh(Math.PI * (1 - 2 * Double.parseDouble(args[4]) / z2)));
    124                 map.bounds.minlat = Math.atan(Math.sinh(Math.PI * (1 - 2 * (Double.parseDouble(args[4]) + 1) / z2)));
    125                 map.bounds.minlon = Math.toRadians(Double.parseDouble(args[3]) / z2 * 360.0 - 180.0);
    126                 map.bounds.maxlon = Math.toRadians((Double.parseDouble(args[3]) + 1) / z2 * 360.0 - 180.0);
    127                 context = new Context();
    128                 Rectangle rect = new Rectangle(256, 256);
    129                 DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation();
    130                 Document document = domImpl.createDocument("http://www.w3.org/2000/svg", "svg", null);
    131                 SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
    132                 svgGenerator.clearRect(rect.x, rect.y, rect.width, rect.height);
    133                 svgGenerator.setSVGCanvasSize(rect.getSize());
    134                 svgGenerator.setClip(rect.x, rect.y, rect.width, rect.height);
    135                 Renderer.reRender(svgGenerator, rect, zoom, scale, map, context);
    136                 svgGenerator.stream(dst);
    137                 System.exit(0);
    138         }
     94        public RuleSet ruleset() {
     95            return RuleSet.BASE;
     96        }
     97    }
     98   
     99    public static void main(String[] args) throws IOException {
     100        if (args.length < 5) {
     101            System.err.println("Usage: java -jar jbasemap.jar OSM_file SVG_file zoom xtile ytile");
     102            System.exit(-1);
     103        }
     104        src = args[0];
     105        dst = args[1];
     106        zoom = Integer.parseInt(args[2]);
     107        z2 = Math.pow(2, zoom);
     108        double scale = 0.1;
     109        try {
     110            BufferedReader in = new BufferedReader(new FileReader(src));
     111            map = new S57map(false);
     112            try {
     113                S57osm.OSMmap(in, map, true);
     114            } catch (Exception e) {
     115                System.err.println("Input data error");
     116                System.exit(-1);
     117            }
     118            in.close();
     119        } catch (IOException e) {
     120            System.err.println("Input file: " + e.getMessage());
     121            System.exit(-1);
     122        }
     123        map.bounds.maxlat = Math.atan(Math.sinh(Math.PI * (1 - 2 * Double.parseDouble(args[4]) / z2)));
     124        map.bounds.minlat = Math.atan(Math.sinh(Math.PI * (1 - 2 * (Double.parseDouble(args[4]) + 1) / z2)));
     125        map.bounds.minlon = Math.toRadians(Double.parseDouble(args[3]) / z2 * 360.0 - 180.0);
     126        map.bounds.maxlon = Math.toRadians((Double.parseDouble(args[3]) + 1) / z2 * 360.0 - 180.0);
     127        context = new Context();
     128        Rectangle rect = new Rectangle(256, 256);
     129        DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation();
     130        Document document = domImpl.createDocument("http://www.w3.org/2000/svg", "svg", null);
     131        SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
     132        svgGenerator.clearRect(rect.x, rect.y, rect.width, rect.height);
     133        svgGenerator.setSVGCanvasSize(rect.getSize());
     134        svgGenerator.setClip(rect.x, rect.y, rect.width, rect.height);
     135        Renderer.reRender(svgGenerator, rect, zoom, scale, map, context);
     136        svgGenerator.stream(dst);
     137        System.exit(0);
     138    }
    139139}
Note: See TracChangeset for help on using the changeset viewer.