Ignore:
Timestamp:
2019-02-25T09:55:19+01:00 (6 years ago)
Author:
malcolmh
Message:

[Seachart] Publish new release

Location:
applications/editors/josm/plugins/seachart/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/seachart/src/render/Rules.java

    r34896 r34906  
    3838import s57.S57val.CatOBS;
    3939import s57.S57val.CatOFP;
     40import s57.S57val.CatOPA;
    4041import s57.S57val.CatPIL;
    41 import s57.S57val.CatPRA;
    4242import s57.S57val.CatREA;
    4343import s57.S57val.CatROD;
     44import s57.S57val.CatROS;
    4445import s57.S57val.CatSCF;
    4546import s57.S57val.CatSEA;
     
    5960import s57.S57val.UniHLU;
    6061import s57.S57val.WatLEV;
     62import s57.S57val.CatVAN;
    6163import symbols.Areas;
    6264import symbols.Beacons;
     
    348350                                if (testObject(Obj.BCNISD)) for (Feature f : objects) if (testFeature(f)) beacons();
    349351                                if (testObject(Obj.BCNSAW)) for (Feature f : objects) if (testFeature(f)) beacons();
    350                                 if (testObject(Obj.BCNSPP)) for (Feature f : objects) if (testFeature(f)) beacons();
     352                if (testObject(Obj.BCNSPP)) for (Feature f : objects) if (testFeature(f)) beacons();
     353                if (testObject(Obj.VAATON)) for (Feature f : objects) if (testFeature(f)) virtual();
    351354                        }
    352355                } catch (ConcurrentModificationException e) {
     
    386389                        break;
    387390                case FAIRWY:
    388                         if (feature.geom.area > 2.0) {
    389                                 if (Renderer.zoom < 16)
    390                                         Renderer.lineVector(new LineStyle(Symbols.Mline, 8, new float[] { 50, 50 }, new Color(0x40ffffff, true)));
    391                                 else
    392                                         Renderer.lineVector(new LineStyle(Symbols.Mline, 8, new float[] { 50, 50 }));
    393                         } else {
    394                                 if (Renderer.zoom >= 14)
    395                                         Renderer.lineVector(new LineStyle(new Color(0x40ffffff, true)));
    396                         }
     391            if (Renderer.zoom >= 12) {
     392                if (feature.geom.area > 1.0) {
     393                    if (Renderer.zoom < 16)
     394                        Renderer.lineVector(new LineStyle(new Color(0x20ffffff, true)));
     395                    else
     396                        Renderer.lineVector(new LineStyle(Symbols.Mline, 8, new float[] { 50, 50 }));
     397                } else {
     398                    if (Renderer.zoom >= 14)
     399                        Renderer.lineVector(new LineStyle(new Color(0x20ffffff, true)));
     400                }
     401            }
    397402                        break;
    398403                case LKBSPT:
     
    428433                        break;
    429434                case OSPARE:
    430                         if (testAttribute(feature.type, Att.CATPRA, CatPRA.PRA_WFRM)) {
     435                        if (testAttribute(feature.type, Att.CATOPA, CatOPA.OPA_WIND)) {
    431436                                Renderer.symbol(Areas.WindFarm);
    432437                                Renderer.lineVector(new LineStyle(Color.black, 12, new float[] { 40, 40 }));
     
    473478                                                if (name != null) {
    474479                                                        Renderer.labelText(name, new Font("Arial", Font.ITALIC, 75), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
    475                                                         Renderer.labelText("(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, new Delta(Handle.BC));
     480                                                        Renderer.labelText("(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 20)));
    476481                                                }
    477482                                        } else if (feature.geom.prim == Pflag.LINE) {
    478483                                                if (name != null) {
    479484                                                        Renderer.lineText(name, new Font("Arial", Font.ITALIC, 75), Color.black, -40);
    480                                                         Renderer.lineText("(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, 0);
     485                                                        Renderer.lineText("(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, 20);
    481486                                                }
    482487                                        } else {
    483488                                                if (name != null) {
    484489                                                        Renderer.labelText(name, new Font("Arial", Font.ITALIC, 75), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
    485                                                         Renderer.labelText("(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, new Delta(Handle.BC));
     490                                                        Renderer.labelText("(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 20)));
    486491                                                }
    487492                                        }
     
    874879                        }
    875880                        break;
    876                 case BUISGL:
    877                         if (Renderer.zoom >= 16) {
    878                                 if (testAttribute(Obj.BUISGL, Att.STATUS, StsSTS.STS_ILLD)) {
    879                                         Renderer.symbol(Beacons.Floodlight);
    880                                 }
    881                                 ArrayList<Symbol> symbols = new ArrayList<>();
    882                                 ArrayList<FncFNC> fncs = (ArrayList<FncFNC>) getAttList(Obj.BUISGL, Att.FUNCTN);
    883                                 for (FncFNC fnc : fncs) {
    884                                         symbols.add(Landmarks.Funcs.get(fnc));
    885                                 }
    886                                 if (feature.objs.containsKey(Obj.SMCFAC)) {
    887                                         ArrayList<CatSCF> scfs = (ArrayList<CatSCF>) getAttList(Obj.SMCFAC, Att.CATSCF);
    888                                         for (CatSCF scf : scfs) {
    889                                                 symbols.add(Facilities.Cats.get(scf));
    890                                         }
    891                                 }
    892                                 Renderer.cluster(symbols);
    893                         }
    894                         break;
     881        case BUISGL:
     882            if (Renderer.zoom >= 16) {
     883                Renderer.lineVector(new LineStyle(Color.black, 8, new Color(0xffc0c0c0, true)));
     884                if (testAttribute(Obj.BUISGL, Att.STATUS, StsSTS.STS_ILLD)) {
     885                    Renderer.symbol(Beacons.Floodlight);
     886                }
     887                ArrayList<Symbol> symbols = new ArrayList<>();
     888                ArrayList<FncFNC> fncs = (ArrayList<FncFNC>) getAttList(Obj.BUISGL, Att.FUNCTN);
     889                for (FncFNC fnc : fncs) {
     890                    symbols.add(Landmarks.Funcs.get(fnc));
     891                }
     892                if (feature.objs.containsKey(Obj.SMCFAC)) {
     893                    ArrayList<CatSCF> scfs = (ArrayList<CatSCF>) getAttList(Obj.SMCFAC, Att.CATSCF);
     894                    for (CatSCF scf : scfs) {
     895                        symbols.add(Facilities.Cats.get(scf));
     896                    }
     897                }
     898                Renderer.cluster(symbols);
     899                Signals.addSignals();
     900            }
     901            break;
    895902                case HRBFAC:
    896903                        if (Renderer.zoom >= 12) {
     
    11721179                                Renderer.lineVector(new LineStyle(Color.black, 5, new float[] { 20, 20 }, null));
    11731180                                if (Renderer.zoom >= 15) {
    1174                                         Renderer.lineText("Boom", new Font("Arial", Font.PLAIN, 80), Color.black, -20);
     1181                                        Renderer.lineText("Boom", new Font("Arial", Font.PLAIN, 40), Color.black, -20);
    11751182                                }
    11761183                        }
     
    14851492        }
    14861493
     1494    @SuppressWarnings("unchecked")
     1495    private static void virtual() {
     1496        if (Renderer.zoom >= 12) {
     1497            Renderer.symbol(Harbours.SignalStation, new Scheme(Symbols.Msymb));
     1498            Renderer.symbol(Beacons.RadarStation, new Scheme(Symbols.Msymb));
     1499           ArrayList<CatVAN> cats = (ArrayList<CatVAN>) getAttList(Obj.VAATON, Att.CATVAN);
     1500            for (CatVAN van : cats) {
     1501                switch (van) {
     1502                case VAN_NCAR:
     1503                    Renderer.symbol(Topmarks.TopNorth, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1504                    break;
     1505                case VAN_SCAR:
     1506                    Renderer.symbol(Topmarks.TopSouth, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1507                    break;
     1508                case VAN_ECAR:
     1509                    Renderer.symbol(Topmarks.TopEast, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1510                    break;
     1511                case VAN_WCAR:
     1512                    Renderer.symbol(Topmarks.TopWest, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1513                    break;
     1514                case VAN_PLAT:
     1515                case VAN_PCHS:
     1516                    Renderer.symbol(Topmarks.TopCan, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1517                    break;
     1518                case VAN_SLAT:
     1519                case VAN_PCHP:
     1520                    Renderer.symbol(Topmarks.TopCone, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1521                    break;
     1522                case VAN_IDGR:
     1523                    Renderer.symbol(Topmarks.TopIsol, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1524                    break;
     1525                case VAN_SAFW:
     1526                    Renderer.symbol(Topmarks.TopSphere, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1527                    break;
     1528                case VAN_SPPM:
     1529                    Renderer.symbol(Topmarks.TopX, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1530                    break;
     1531                case VAN_WREK:
     1532                    Renderer.symbol(Topmarks.TopCross, new Scheme(Symbols.Msymb), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
     1533                    break;
     1534                default:
     1535                    break;
     1536                }
     1537            }
     1538        }
     1539        if (Renderer.zoom >= 15) {
     1540                Renderer.labelText("V-AIS", new Font("Arial", Font.PLAIN, 40), Symbols.Msymb, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 70)));
     1541        }
     1542    }
     1543       
    14871544        private static void waterways() {
    14881545                Renderer.lineVector(new LineStyle(Symbols.Bwater, 20, (feature.geom.prim == Pflag.AREA) ? Symbols.Bwater : null));
  • applications/editors/josm/plugins/seachart/src/render/Signals.java

    r34896 r34906  
    249249        @SuppressWarnings("unchecked")
    250250        public static void radioStations() {
    251                 boolean vais = false;
    252251                String bstr = "";
    253252                if (Renderer.zoom >= 11) {
     
    302301                                case ROS_TIME:
    303302                                        break;
    304                                 case ROS_PAIS:
    305                                 case ROS_SAIS:
     303                case ROS_AISB:
     304                case ROS_PAIS:
    306305                                        bstr += " AIS";
    307306                                        break;
    308                                 case ROS_VAIS:
    309                                         vais = true;
    310                                         break;
    311                                 case ROS_VANC:
    312                                         vais = true;
    313                                         Renderer.symbol(Topmarks.TopNorth, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    314                                         break;
    315                                 case ROS_VASC:
    316                                         vais = true;
    317                                         Renderer.symbol(Topmarks.TopSouth, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    318                                         break;
    319                                 case ROS_VAEC:
    320                                         vais = true;
    321                                         Renderer.symbol(Topmarks.TopEast, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    322                                         break;
    323                                 case ROS_VAWC:
    324                                         vais = true;
    325                                         Renderer.symbol(Topmarks.TopWest, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    326                                         break;
    327                                 case ROS_VAPL:
    328                                         vais = true;
    329                                         Renderer.symbol(Topmarks.TopCan, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    330                                         break;
    331                                 case ROS_VASL:
    332                                         vais = true;
    333                                         Renderer.symbol(Topmarks.TopCone, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    334                                         break;
    335                                 case ROS_VAID:
    336                                         vais = true;
    337                                         Renderer.symbol(Topmarks.TopIsol, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    338                                         break;
    339                                 case ROS_VASW:
    340                                         vais = true;
    341                                         Renderer.symbol(Topmarks.TopSphere, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    342                                         break;
    343                                 case ROS_VASP:
    344                                         vais = true;
    345                                         Renderer.symbol(Topmarks.TopX, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    346                                         break;
    347                                 case ROS_VAWK:
    348                                         vais = true;
    349                                         Renderer.symbol(Topmarks.TopCross, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -25)));
    350                                         break;
    351307                                default:
    352308                                        break;
    353309                                }
    354310                        }
    355                         if (!vais) {
    356                                 Renderer.symbol(Beacons.RadarStation);
    357                         }
     311                        Renderer.symbol(Beacons.RadarStation);
    358312                }
    359313                if (Renderer.zoom >= 15) {
    360                         if (vais) {
    361                                 Renderer.labelText("V-AIS", new Font("Arial", Font.PLAIN, 40), Symbols.Msymb, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 70)));
    362                         }
    363314                        if (!bstr.isEmpty()) {
    364315                                Renderer.labelText(bstr, new Font("Arial", Font.PLAIN, 40), Symbols.Msymb, new Delta(Handle.TR, AffineTransform.getTranslateInstance(-30, -110)));
  • applications/editors/josm/plugins/seachart/src/s57/S57att.java

    r33724 r34906  
    2929        MEAWAT, MEANAM, OTHWAT, OTHNAM, REFLEV, SDRLEV, VCRLEV, SCHREF, USESHP, CURVHW, CURVLW, CURVMW, CURVOW, APTREF, SHPTYP, UPDMSG, ADDMRK, CATNMK, CATBRT, CATBUN,
    3030        CATCCL, CATCOM, CATHBR, CATRFD, CATTML, CATGAG, CATVTR, CATTAB, CATEXS, LG_SPD, LG_SPR, LG_BME, LG_LGS, LG_DRT, LG_WDP, LG_WDU, LG_REL, LG_FNC, LG_DES, LG_PBR,
    31         LC_CSI, LC_CSE, LC_ASI, LC_ASE, LC_CCI, LC_CCE, LC_BM1, LC_BM2, LC_LG1, LC_LG2, LC_DR1, LC_DR2, LC_SP1, LC_SP2, LC_WD1, LC_WD2, CATCVR, HUNITS
     31        LC_CSI, LC_CSE, LC_ASI, LC_ASE, LC_CCI, LC_CCE, LC_BM1, LC_BM2, LC_LG1, LC_LG2, LC_DR1, LC_DR2, LC_SP1, LC_SP2, LC_WD1, LC_WD2, CATCVR, HUNITS, CATOPA, CATSCH,
     32        CATVAN
    3233    }
    3334
     
    6263        AttS57.put(Att.VERCCL, 182); AttS57.put(Att.VERCOP, 183); AttS57.put(Att.VERCSA, 184); AttS57.put(Att.VERDAT, 185); AttS57.put(Att.VERLEN, 186); AttS57.put(Att.WATLEV, 187);
    6364        AttS57.put(Att.CAT_TS, 188); AttS57.put(Att.NINFOM, 300); AttS57.put(Att.NOBJNM, 301); AttS57.put(Att.NPLDST, 302); AttS57.put(Att.NTXTDS, 304); AttS57.put(Att.HORDAT, 400);
    64         AttS57.put(Att.POSACC, 401); AttS57.put(Att.QUAPOS, 402);
     65        AttS57.put(Att.POSACC, 401); AttS57.put(Att.QUAPOS, 402); AttS57.put(Att.CATOPA, 900); AttS57.put(Att.CATSCH, 901); AttS57.put(Att.CATVAN, 902);
    6566    }
    6667
     
    145146        AttStr.put(Att.CURVLW, "low_velocity"); AttStr.put(Att.CURVMW, "mean_velocity"); AttStr.put(Att.CURVOW, "other_velocity"); AttStr.put(Att.APTREF, "passing_time");
    146147        AttStr.put(Att.CATCOM, "category"); AttStr.put(Att.CATCVR, "category"); AttStr.put(Att.CATEXS, "category"); AttStr.put(Att.SHPTYP, "ship");
    147         AttStr.put(Att.UPDMSG, "message");
     148        AttStr.put(Att.UPDMSG, "message"); AttStr.put(Att.CATOPA, "category"); AttStr.put(Att.CATSCH, "category"); AttStr.put(Att.CATVAN, "category");
    148149    }
    149150
     
    184185        Category.put(Obj.LNDRGN, Att.CATLND); Category.put(Obj.LNDMRK, Att.CATLMK); Category.put(Obj.LIGHTS, Att.CATLIT); Category.put(Obj.M_COVR, Att.CATCVR); Category.put(Obj.MARCUL, Att.CATMFA);
    185186        Category.put(Obj.MIPARE, Att.CATMPA); Category.put(Obj.MORFAC, Att.CATMOR); Category.put(Obj.NAVLNE, Att.CATNAV); Category.put(Obj.NOTMRK, Att.CATNMK); Category.put(Obj.OBSTRN, Att.CATOBS);
    186         Category.put(Obj.OFSPLF, Att.CATOFP); Category.put(Obj.OILBAR, Att.CATOLB); Category.put(Obj.OSPARE, Att.CATPRA); Category.put(Obj.PILPNT, Att.CATPLE); Category.put(Obj.PILBOP, Att.CATPIL);
     187        Category.put(Obj.OFSPLF, Att.CATOFP); Category.put(Obj.OILBAR, Att.CATOLB); Category.put(Obj.OSPARE, Att.CATOPA); Category.put(Obj.PILPNT, Att.CATPLE); Category.put(Obj.PILBOP, Att.CATPIL);
    187188        Category.put(Obj.PIPARE, Att.CATPIP); Category.put(Obj.PIPOHD, Att.CATPIP); Category.put(Obj.PIPSOL, Att.CATPIP); Category.put(Obj.PRDARE, Att.CATPRA); Category.put(Obj.PYLONS, Att.CATPYL);
    188189        Category.put(Obj.RADSTA, Att.CATRAS); Category.put(Obj.RCRTCL, Att.CATTRK); Category.put(Obj.RCTLPT, Att.CATTRK); Category.put(Obj.RDOSTA, Att.CATROS); Category.put(Obj.RDOCAL, Att.CATCOM);
     
    193194        Category.put(Obj.TSSBND, Att.CATTSS); Category.put(Obj.TSSCRS, Att.CATTSS); Category.put(Obj.TSSLPT, Att.CATTSS); Category.put(Obj.TSSRON, Att.CATTSS); Category.put(Obj.TWRTPT, Att.CATTRK);
    194195        Category.put(Obj.VEGATN, Att.CATVEG); Category.put(Obj.VEHTRF, Att.CATVTR); Category.put(Obj.WATTUR, Att.CATWAT); Category.put(Obj.WEDKLP, Att.CATWED); Category.put(Obj.WRECKS, Att.CATWRK);
    195         Category.put(Obj.WTWAXS, Att.CATCCL); Category.put(Obj.WTWARE, Att.CATCCL); Category.put(Obj.WTWGAG, Att.CATGAG); Category.put(Obj.BERTHS, Att.CATBRT);
     196        Category.put(Obj.WTWAXS, Att.CATCCL); Category.put(Obj.WTWARE, Att.CATCCL); Category.put(Obj.WTWGAG, Att.CATGAG); Category.put(Obj.BERTHS, Att.CATBRT); Category.put(Obj.VAATON, Att.CATVAN);
    196197    }
    197198
  • applications/editors/josm/plugins/seachart/src/s57/S57obj.java

    r34652 r34906  
    2727        TSSBND, TSSCRS, TSSLPT, TSSRON, TSEZNE, TUNNEL, TWRTPT, UWTROC, UNSARE, VEGATN, WATTUR, WATFAL, WEDKLP, WRECKS, TS_FEB, NOTMRK,
    2828        WTWAXS, WTWPRF, BUNSTA, COMARE, HRBBSN, LOKARE, LKBSPT, PRTARE, REFDMP, TERMNL, TRNBSN, WTWARE, WTWGAG, TISDGE, VEHTRF, EXCNST,
    29         LG_SDM, LG_VSP, LITMIN, LITMAJ
     29        LG_SDM, LG_VSP, LITMIN, LITMAJ, VAATON
    3030    }
    3131
     
    6565        ObjS57.put(Obj.WATTUR, 156); ObjS57.put(Obj.WATFAL, 157); ObjS57.put(Obj.WEDKLP, 158); ObjS57.put(Obj.WRECKS, 159); ObjS57.put(Obj.TS_FEB, 160);
    6666        ObjS57.put(Obj.MPAARE, 199); ObjS57.put(Obj.M_COVR, 302); ObjS57.put(Obj.M_NSYS, 306); ObjS57.put(Obj.LITMAJ, 74); ObjS57.put(Obj.LITMIN, 90);
     67        ObjS57.put(Obj.VAATON, 900);
    6768    }
    6869
     
    129130        ObjStr.put(Obj.TISDGE, "time_schedule"); ObjStr.put(Obj.VEHTRF, "vehicle_transfer"); ObjStr.put(Obj.EXCNST, "exceptional_structure"); ObjStr.put(Obj.MPAARE, "protected_area");
    130131        ObjStr.put(Obj.LITMAJ, "light_major"); ObjStr.put(Obj.LITMIN, "light_minor"); ObjStr.put(Obj.M_COVR, "coverage"); ObjStr.put(Obj.M_NSYS, "system");
     132        ObjStr.put(Obj.VAATON, "virtual_aton");
    131133    }
    132134
  • applications/editors/josm/plugins/seachart/src/s57/S57val.java

    r34652 r34906  
    7373    }
    7474
    75     public enum CatAIR { AIR_UNKN, AIR_MILA, AIR_CIVA, AIR_MILH, AIR_CIVH, AIR_GLDR, AIR_SMLP, AIR_EMRG }
     75    public enum CatAIR { AIR_UNKN, AIR_MILA, AIR_CIVA, AIR_MILH, AIR_CIVH, AIR_GLDR, AIR_SMLP, AIR_EMRG, AIR_SAR }
    7676
    7777    private static final EnumMap<CatAIR, S57enum> Catair = new EnumMap<>(CatAIR.class);
     
    8080        Catair.put(CatAIR.AIR_MILA, new S57enum(1, "military")); Catair.put(CatAIR.AIR_CIVA, new S57enum(2, "civil")); Catair.put(CatAIR.AIR_MILH, new S57enum(3, "military_heliport"));
    8181        Catair.put(CatAIR.AIR_CIVH, new S57enum(4, "civil_heliport")); Catair.put(CatAIR.AIR_GLDR, new S57enum(5, "glider")); Catair.put(CatAIR.AIR_SMLP, new S57enum(6, "small_planes"));
    82         Catair.put(CatAIR.AIR_EMRG, new S57enum(8, "emergency"));
     82        Catair.put(CatAIR.AIR_EMRG, new S57enum(8, "emergency")); Catair.put(CatAIR.AIR_SAR, new S57enum(9, "sar"));
    8383    }
    8484
     
    154154    }
    155155
     156    public enum CatCON { CON_UNKN, CON_AERL, CON_BELT, CON_FLUM, CON_LIFT }
     157
     158    private static final EnumMap<CatCON, S57enum> Catcon = new EnumMap<>(CatCON.class); static {
     159        Catcon.put(CatCON.CON_UNKN, new S57enum(0, ""));
     160        Catcon.put(CatCON.CON_AERL, new S57enum(1, "aerial")); Catcon.put(CatCON.CON_BELT, new S57enum(2, "belt"));
     161        Catcon.put(CatCON.CON_FLUM, new S57enum(3, "flume")); Catcon.put(CatCON.CON_LIFT, new S57enum(4, "lift"));
     162    }
     163
     164    public enum CatCRN { CRN_UNKN, CRN_NONS, CRN_CONT, CRN_SHRL, CRN_TRAV, CRN_AFRM, CRN_GLTH }
     165
     166    private static final EnumMap<CatCRN, S57enum> Catcrn = new EnumMap<>(CatCRN.class); static {
     167        Catcrn.put(CatCRN.CRN_UNKN, new S57enum(0, ""));
     168        Catcrn.put(CatCRN.CRN_NONS, new S57enum(1, "non-specific")); Catcrn.put(CatCRN.CRN_CONT, new S57enum(2, "container")); Catcrn.put(CatCRN.CRN_SHRL, new S57enum(3, "sheerlegs"));
     169        Catcrn.put(CatCRN.CRN_TRAV, new S57enum(4, "travelling")); Catcrn.put(CatCRN.CRN_AFRM, new S57enum(5, "a-frame")); Catcrn.put(CatCRN.CRN_GLTH, new S57enum(6, "goliath"));
     170    }
     171
    156172    public enum CatCTR { CTR_UNKN, CTR_TRGN, CTR_OBSV, CTR_FIXD, CTR_BMRK, CTR_BDRY, CTR_HORM, CTR_HORS }
    157173
     
    163179    }
    164180
    165     public enum CatCON { CON_UNKN, CAT_AERL, CAT_BELT }
    166 
    167     private static final EnumMap<CatCON, S57enum> Catcon = new EnumMap<>(CatCON.class); static {
    168         Catcon.put(CatCON.CON_UNKN, new S57enum(0, ""));
    169         Catcon.put(CatCON.CAT_AERL, new S57enum(1, "aerial")); Catcon.put(CatCON.CAT_BELT, new S57enum(2, "belt"));
    170     }
    171 
    172     public enum CatCRN { CRN_UNKN, CRN_NONS, CRN_CONT, CRN_SHRL, CRN_TRAV, CRN_AFRM, CRN_GLTH }
    173 
    174     private static final EnumMap<CatCRN, S57enum> Catcrn = new EnumMap<>(CatCRN.class); static {
    175         Catcrn.put(CatCRN.CRN_UNKN, new S57enum(0, ""));
    176         Catcrn.put(CatCRN.CRN_NONS, new S57enum(1, "non-specific")); Catcrn.put(CatCRN.CRN_CONT, new S57enum(2, "container")); Catcrn.put(CatCRN.CRN_SHRL, new S57enum(3, "sheerlegs"));
    177         Catcrn.put(CatCRN.CRN_TRAV, new S57enum(4, "travelling")); Catcrn.put(CatCRN.CRN_AFRM, new S57enum(5, "a-frame")); Catcrn.put(CatCRN.CRN_GLTH, new S57enum(6, "goliath"));
    178     }
    179 
    180181    public enum CatDAM { DAM_UNKN, DAM_WEIR, DAM_DAM, DAM_FLDB }
    181182
     
    216217    }
    217218
    218     public enum CatFRY { FRY_UNKN, FRY_FREE, FRY_CABL, FRY_ICE, FRY_SWWR }
     219    public enum CatFRY { FRY_UNKN, FRY_FREE, FRY_CABL, FRY_ICE, FRY_SWWR, FRY_HISP }
    219220
    220221    private static final EnumMap<CatFRY, S57enum> Catfry = new EnumMap<>(CatFRY.class); static {
    221222        Catfry.put(CatFRY.FRY_UNKN, new S57enum(0, ""));
    222223        Catfry.put(CatFRY.FRY_FREE, new S57enum(1, "free")); Catfry.put(CatFRY.FRY_CABL, new S57enum(2, "cable")); Catfry.put(CatFRY.FRY_ICE, new S57enum(3, "ice"));
    223         Catfry.put(CatFRY.FRY_SWWR, new S57enum(4, "swinging_wire"));
     224        Catfry.put(CatFRY.FRY_SWWR, new S57enum(4, "swinging_wire")); Catfry.put(CatFRY.FRY_HISP, new S57enum(5, "hi_speed"));
    224225    }
    225226
     
    242243    }
    243244
    244     public enum CatFOR { FOR_UNKN, FOR_CSTL, FOR_FORT, FOR_BTTY, FOR_BKHS, FOR_MTWR, FOR_RDBT }
     245    public enum CatFOR { FOR_UNKN, FOR_CSTL, FOR_FORT, FOR_BTTY, FOR_BKHS, FOR_MTWR, FOR_RDBT, FOR_SUBM, FOR_RMPT }
    245246
    246247    private static final EnumMap<CatFOR, S57enum> Catfor = new EnumMap<>(CatFOR.class); static {
     
    248249        Catfor.put(CatFOR.FOR_CSTL, new S57enum(1, "castle")); Catfor.put(CatFOR.FOR_FORT, new S57enum(2, "fort")); Catfor.put(CatFOR.FOR_BTTY, new S57enum(3, "battery"));
    249250        Catfor.put(CatFOR.FOR_BKHS, new S57enum(4, "blockhouse")); Catfor.put(CatFOR.FOR_MTWR, new S57enum(5, "martello_tower")); Catfor.put(CatFOR.FOR_RDBT, new S57enum(6, "redoubt"));
     251        Catfor.put(CatFOR.FOR_SUBM, new S57enum(8, "submarine")); Catfor.put(CatFOR.FOR_RMPT, new S57enum(9, "rampart"));
    250252    }
    251253
     
    258260    }
    259261
    260     public enum CatHAF { HAF_UNKN, HAF_RORO, HAF_TMBR, HAF_FERY, HAF_FISH, HAF_MRNA, HAF_NAVL, HAF_TNKR, HAF_PSGR, HAF_YARD, HAF_CNTR, HAF_BULK, HAF_SYNC, HAF_STCR, HAF_LUVB,
     262    public enum CatHAF { HAF_UNKN, HAF_RORO, HAF_FERY, HAF_FISH, HAF_MRNA, HAF_NAVL, HAF_TNKR, HAF_PSGR, HAF_YARD, HAF_CNTR, HAF_BULK, HAF_SYNC, HAF_STCR, HAF_SVCH, HAF_PLTG,
    261263        HAF_REPR, HAF_QUAR, HAF_SPLN, HAF_CARG, HAF_OFFS, HAF_SSUP, HAF_MANF }
    262264
     
    267269        Cathaf.put(CatHAF.HAF_PSGR, new S57enum(8, "passenger")); Cathaf.put(CatHAF.HAF_YARD, new S57enum(9, "shipyard")); Cathaf.put(CatHAF.HAF_CNTR, new S57enum(10, "container"));
    268270        Cathaf.put(CatHAF.HAF_BULK, new S57enum(11, "bulk")); Cathaf.put(CatHAF.HAF_SYNC, new S57enum(12, "syncrolift")); Cathaf.put(CatHAF.HAF_STCR, new S57enum(13, "straddle_carrier"));
    269         Cathaf.put(CatHAF.HAF_LUVB, new S57enum(14, "lay_up")); Cathaf.put(CatHAF.HAF_TMBR, new S57enum(15, "timber")); Cathaf.put(CatHAF.HAF_REPR, new S57enum(16, "service_repair"));
     271        Cathaf.put(CatHAF.HAF_SVCH, new S57enum(14, "service")); Cathaf.put(CatHAF.HAF_PLTG, new S57enum(15, "pilotage")); Cathaf.put(CatHAF.HAF_REPR, new S57enum(16, "service_repair"));
    270272        Cathaf.put(CatHAF.HAF_QUAR, new S57enum(17, "quarantine")); Cathaf.put(CatHAF.HAF_SPLN, new S57enum(18, "seaplane")); Cathaf.put(CatHAF.HAF_CARG, new S57enum(19, "cargo"));
    271273        Cathaf.put(CatHAF.HAF_OFFS, new S57enum(20, "offshore_support")); Cathaf.put(CatHAF.HAF_OFFS, new S57enum(21, "port_support_base"));
     
    273275    }
    274276
    275     public enum CatHLK { HLK_UNKN, HLK_REST, HLK_HIST, HLK_MUSM, HLK_ACCM, HLK_BWTR, HLK_CSNO }
     277    public enum CatHLK { HLK_UNKN, HLK_REST, HLK_HIST, HLK_MUSM, HLK_ACCM, HLK_BWTR, HLK_CSNO, HLK_TRNG }
    276278
    277279    private static final EnumMap<CatHLK, S57enum> Cathlk = new EnumMap<>(CatHLK.class); static {
     
    279281        Cathlk.put(CatHLK.HLK_REST, new S57enum(1, "floating_restaurant")); Cathlk.put(CatHLK.HLK_HIST, new S57enum(2, "historic")); Cathlk.put(CatHLK.HLK_MUSM, new S57enum(3, "museum"));
    280282        Cathlk.put(CatHLK.HLK_ACCM, new S57enum(4, "accommodation")); Cathlk.put(CatHLK.HLK_BWTR, new S57enum(5, "floating_breakwater")); Cathlk.put(CatHLK.HLK_CSNO, new S57enum(6, "casino_boat"));
     283        Cathlk.put(CatHLK.HLK_TRNG, new S57enum(7, "training"));
    281284    }
    282285
     
    297300
    298301    public enum CatLND { LND_UNKN, LND_FEN, LND_MRSH, LND_BOG, LND_HTHL, LND_MNTN, LND_LOWL, LND_CNYN, LND_PDDY, LND_AGRI, LND_SVNA, LND_PARK, LND_SWMP, LND_LSLD, LND_LAVA,
    299         LND_SLTP, LND_MORN, LND_CRTR, LND_CAVE, LND_PINCL, LND_CAY }
     302        LND_SLTP, LND_MORN, LND_CRTR, LND_CAVE, LND_PINCL, LND_CAY, LND_WADI }
    300303
    301304    private static final EnumMap<CatLND, S57enum> Catlnd = new EnumMap<>(CatLND.class); static {
     
    307310        Catlnd.put(CatLND.LND_LSLD, new S57enum(13, "landslide")); Catlnd.put(CatLND.LND_LAVA, new S57enum(14, "lava")); Catlnd.put(CatLND.LND_SLTP, new S57enum(15, "salt_pan"));
    308311        Catlnd.put(CatLND.LND_MORN, new S57enum(16, "moraine")); Catlnd.put(CatLND.LND_CRTR, new S57enum(17, "crater")); Catlnd.put(CatLND.LND_CAVE, new S57enum(18, "cave"));
    309         Catlnd.put(CatLND.LND_PINCL, new S57enum(19, "rock_pinnacle")); Catlnd.put(CatLND.LND_CAY, new S57enum(20, "cay"));
     312        Catlnd.put(CatLND.LND_PINCL, new S57enum(19, "rock_pinnacle")); Catlnd.put(CatLND.LND_CAY, new S57enum(20, "cay")); Catlnd.put(CatLND.LND_WADI, new S57enum(21, "wadi"));
    310313    }
    311314
     
    327330
    328331    public enum CatLAM { LAM_UNKN, LAM_PORT, LAM_STBD, LAM_PCST, LAM_PCPT, LAM_WWLT, LAM_WWRT, LAM_CHLT, LAM_CHRT, LAM_WWSN, LAM_CHSN, LAM_CHRB, LAM_CHLB, LAM_CRRT, LAM_CRLT,
    329         LAM_DRLT, LAM_DRRT, LAM_TOLT, LAM_TPRT, LAM_JBRT, LAM_JNLT, LAM_HBRT, LAM_HBLT, LAM_BRGP }
     332        LAM_DRLT, LAM_DRRT, LAM_TOLT, LAM_TPRT, LAM_JBRT, LAM_JNLT, LAM_HBRT, LAM_HBLT, LAM_BRGP, LAM_LKRT, LAM_LKLT, LAM_CHBK, LAM_CNBK }
    330333
    331334    private static final EnumMap<CatLAM, S57enum> Catlam = new EnumMap<>(CatLAM.class); static {
     
    338341        Catlam.put(CatLAM.LAM_DRRT, new S57enum(16, "danger_left")); Catlam.put(CatLAM.LAM_TOLT, new S57enum(17, "turnoff_right")); Catlam.put(CatLAM.LAM_TPRT, new S57enum(18, "turnoff_left"));
    339342        Catlam.put(CatLAM.LAM_JBRT, new S57enum(19, "junction_right")); Catlam.put(CatLAM.LAM_JNLT, new S57enum(20, "junction_left")); Catlam.put(CatLAM.LAM_HBRT, new S57enum(21, "harbour_right"));
    340         Catlam.put(CatLAM.LAM_HBLT, new S57enum(22, "harbour_left")); Catlam.put(CatLAM.LAM_BRGP, new S57enum(23, "bridge_pier"));
     343        Catlam.put(CatLAM.LAM_HBLT, new S57enum(22, "harbour_left")); Catlam.put(CatLAM.LAM_BRGP, new S57enum(23, "bridge_pier")); Catlam.put(CatLAM.LAM_LKRT, new S57enum(24, "lake_right"));
     344        Catlam.put(CatLAM.LAM_LKLT, new S57enum(25, "lake_left")); Catlam.put(CatLAM.LAM_CHBK, new S57enum(26, "change_bank")); Catlam.put(CatLAM.LAM_CNBK, new S57enum(27, "continue_bank"));
    341345    }
    342346
     
    387391
    388392    public enum CatOBS { OBS_UNKN, OBS_STMP, OBS_WELH, OBS_DIFF, OBS_CRIB, OBS_FHVN, OBS_FLAR, OBS_FLGD, OBS_ICEB, OBS_GTKL, OBS_BOOM, OBS_UWTB, OBS_TPLT, OBS_WEND, OBS_UWAS,
    389         OBS_REEF, OBS_MNFD, OBS_PNGO, OBS_RPLT, OBS_SCII }
     393        OBS_REEF, OBS_MNFD, OBS_PNGO, OBS_RPLT, OBS_SCII, OBS_TURB }
    390394
    391395    private static final EnumMap<CatOBS, S57enum> Catobs = new EnumMap<>(CatOBS.class); static {
     
    397401        Catobs.put(CatOBS.OBS_WEND, new S57enum(13, "wave_energy_device")); Catobs.put(CatOBS.OBS_UWAS, new S57enum(14, "subsurface_data")); Catobs.put(CatOBS.OBS_REEF, new S57enum(15, "artificial_reef"));
    398402        Catobs.put(CatOBS.OBS_MNFD, new S57enum(16, "manifold")); Catobs.put(CatOBS.OBS_PNGO, new S57enum(17, "submerged_pingo")); Catobs.put(CatOBS.OBS_RPLT, new S57enum(18, "platform_remains"));
    399         Catobs.put(CatOBS.OBS_SCII, new S57enum(19, "scientific_instrument"));
     403        Catobs.put(CatOBS.OBS_SCII, new S57enum(19, "scientific_instrument")); Catobs.put(CatOBS.OBS_TURB, new S57enum(20, "underwater_turbine"));
    400404    }
    401405
     
    417421    }
    418422
     423    public enum CatOPA { OPA_UNKN, OPA_WIND, OPA_WAVE, OPA_CURF, OPA_TANK, OPA_EXTR }
     424
     425    private static final EnumMap<CatOPA, S57enum> Catopa = new EnumMap<>(CatOPA.class); static {
     426        Catopa.put(CatOPA.OPA_UNKN, new S57enum(0, ""));
     427        Catopa.put(CatOPA.OPA_WIND, new S57enum(1, "wind_farm")); Catopa.put(CatOPA.OPA_WAVE, new S57enum(2, "wave_farm"));
     428        Catopa.put(CatOPA.OPA_CURF, new S57enum(3, "current_farm")); Catopa.put(CatOPA.OPA_TANK, new S57enum(4, "tank_farm"));
     429        Catopa.put(CatOPA.OPA_EXTR, new S57enum(5, "material_extraction"));
     430    }
     431
    419432    public enum CatPLE { PLE_UNKN, PLE_STAK, PLE_POST, PLE_TRIP, PLE_PLNG, PLE_PARE, PLE_PIPE }
    420433
     
    432445    }
    433446
    434     public enum CatPIP { PIP_UNKN, PIP_OFAL, PIP_ITAK, PIP_SEWR, PIP_BBLR, PIP_SPPL }
     447    public enum CatPIP { PIP_UNKN, PIP_OFAL, PIP_ITAK, PIP_SEWR, PIP_BBLR, PIP_SPPL, PIP_BUBL }
    435448
    436449    private static final EnumMap<CatPIP, S57enum> Catpip = new EnumMap<>(CatPIP.class); static {
    437450        Catpip.put(CatPIP.PIP_UNKN, new S57enum(0, ""));
    438451        Catpip.put(CatPIP.PIP_OFAL, new S57enum(2, "outfall")); Catpip.put(CatPIP.PIP_ITAK, new S57enum(3, "intake")); Catpip.put(CatPIP.PIP_SEWR, new S57enum(4, "sewer"));
    439         Catpip.put(CatPIP.PIP_BBLR, new S57enum(5, "bubbler")); Catpip.put(CatPIP.PIP_SPPL, new S57enum(6, "supply"));
    440     }
    441 
    442     public enum CatPRA { PRA_UNKN, PRA_QRRY, PRA_MINE, PRA_STPL, PRA_PSTN, PRA_RFNY, PRA_TYRD, PRA_FACT, PRA_TFRM, PRA_WFRM, PRA_SLAG, PRA_CURF, PRA_OILF, PRA_GASF, PRA_WAVE }
     452        Catpip.put(CatPIP.PIP_BBLR, new S57enum(5, "bubbler")); Catpip.put(CatPIP.PIP_SPPL, new S57enum(6, "supply")); Catpip.put(CatPIP.PIP_BUBL, new S57enum(7, "bubble"));
     453    }
     454
     455    public enum CatPRA { PRA_UNKN, PRA_QRRY, PRA_MINE, PRA_STPL, PRA_PSTN, PRA_RFNY, PRA_TYRD, PRA_FACT, PRA_TFRM, PRA_WFRM, PRA_SLAG, PRA_PLNT }
    443456
    444457    private static final EnumMap<CatPRA, S57enum> Catpra = new EnumMap<>(CatPRA.class); static {
     
    447460        Catpra.put(CatPRA.PRA_PSTN, new S57enum(4, "power_station")); Catpra.put(CatPRA.PRA_RFNY, new S57enum(5, "refinery")); Catpra.put(CatPRA.PRA_TYRD, new S57enum(6, "timber_yard"));
    448461        Catpra.put(CatPRA.PRA_FACT, new S57enum(7, "factory")); Catpra.put(CatPRA.PRA_TFRM, new S57enum(8, "tank_farm")); Catpra.put(CatPRA.PRA_WFRM, new S57enum(9, "wind_farm"));
    449         Catpra.put(CatPRA.PRA_SLAG, new S57enum(10, "slag_heap")); Catpra.put(CatPRA.PRA_CURF, new S57enum(11, "current_farm")); Catpra.put(CatPRA.PRA_OILF, new S57enum(12, "oil"));
    450         Catpra.put(CatPRA.PRA_GASF, new S57enum(13, "gas")); Catpra.put(CatPRA.PRA_WAVE, new S57enum(14, "wave_energy"));
     462        Catpra.put(CatPRA.PRA_SLAG, new S57enum(10, "slag_heap")); Catpra.put(CatPRA.PRA_PLNT, new S57enum(11, "plant"));
    451463    }
    452464
     
    473485    }
    474486
    475     public enum CatROS { ROS_UNKN, ROS_OMNI, ROS_DIRL, ROS_ROTP, ROS_CNSL, ROS_RDF, ROS_QTA, ROS_AERO, ROS_DECA, ROS_LORN, ROS_DGPS, ROS_TORN, ROS_OMGA, ROS_SYLD, ROS_CHKA,
    476         ROS_PCOM, ROS_COMB, ROS_FACS, ROS_TIME, ROS_PAIS, ROS_SAIS, ROS_VAIS, ROS_VANC, ROS_VASC, ROS_VAEC, ROS_VAWC, ROS_VAPL, ROS_VASL, ROS_VAID, ROS_VASW, ROS_VASP, ROS_VAWK }
     487    public enum CatROS { ROS_UNKN, ROS_OMNI, ROS_DIRL, ROS_ROTP, ROS_CNSL, ROS_RDF, ROS_QTA, ROS_AERO, ROS_DECA, ROS_LORN, ROS_DGPS, ROS_TORN,
     488        ROS_OMGA, ROS_SYLD, ROS_CHKA, ROS_PCOM, ROS_COMB, ROS_FACS, ROS_TIME, ROS_TELE, ROS_AISB, ROS_PAIS }
    477489
    478490    private static final EnumMap<CatROS, S57enum> Catros = new EnumMap<>(CatROS.class); static {
    479491        Catros.put(CatROS.ROS_UNKN, new S57enum(0, ""));
    480         Catros.put(CatROS.ROS_OMNI, new S57enum(1, "omnidirectional")); Catros.put(CatROS.ROS_DIRL, new S57enum(2, "directional")); Catros.put(CatROS.ROS_ROTP, new S57enum(3, "rotating_pattern"));
    481         Catros.put(CatROS.ROS_CNSL, new S57enum(4, "consol")); Catros.put(CatROS.ROS_RDF, new S57enum(5, "rdf")); Catros.put(CatROS.ROS_QTA, new S57enum(6, "qtg"));
    482         Catros.put(CatROS.ROS_AERO, new S57enum(7, "aeronautical")); Catros.put(CatROS.ROS_DECA, new S57enum(8, "decca")); Catros.put(CatROS.ROS_LORN, new S57enum(9, "loran"));
    483         Catros.put(CatROS.ROS_DGPS, new S57enum(10, "dgps")); Catros.put(CatROS.ROS_TORN, new S57enum(11, "toran")); Catros.put(CatROS.ROS_OMGA, new S57enum(12, "omega"));
    484         Catros.put(CatROS.ROS_SYLD, new S57enum(13, "syledis")); Catros.put(CatROS.ROS_CHKA, new S57enum(14, "chiaka")); Catros.put(CatROS.ROS_PCOM, new S57enum(15, "public_communication"));
    485         Catros.put(CatROS.ROS_COMB, new S57enum(16, "commercial_broadcast")); Catros.put(CatROS.ROS_FACS, new S57enum(17, "facsimile")); Catros.put(CatROS.ROS_TIME, new S57enum(18, "time_signal"));
    486         Catros.put(CatROS.ROS_PAIS, new S57enum(19, "ais")); Catros.put(CatROS.ROS_SAIS, new S57enum(20, "s-ais")); Catros.put(CatROS.ROS_VAIS, new S57enum(21, "v-ais"));
    487         Catros.put(CatROS.ROS_VANC, new S57enum(22, "v-ais_north_cardinal")); Catros.put(CatROS.ROS_VASC, new S57enum(23, "v-ais_south_cardinal"));
    488         Catros.put(CatROS.ROS_VAEC, new S57enum(24, "v-ais_east_cardinal")); Catros.put(CatROS.ROS_VAWC, new S57enum(25, "v-ais_west_cardinal"));
    489         Catros.put(CatROS.ROS_VAPL, new S57enum(26, "v-ais_port_lateral")); Catros.put(CatROS.ROS_VASL, new S57enum(27, "v-ais_starboard_lateral"));
    490         Catros.put(CatROS.ROS_VAID, new S57enum(28, "v-ais_isolated_danger")); Catros.put(CatROS.ROS_VASW, new S57enum(29, "v-ais_safe_water"));
    491         Catros.put(CatROS.ROS_VASP, new S57enum(30, "v-ais_special_purpose")); Catros.put(CatROS.ROS_VAWK, new S57enum(31, "v-ais_wreck"));
     492        Catros.put(CatROS.ROS_OMNI, new S57enum(1, "omnidirectional")); Catros.put(CatROS.ROS_DIRL, new S57enum(2, "directional"));
     493        Catros.put(CatROS.ROS_ROTP, new S57enum(3, "rotating_pattern")); Catros.put(CatROS.ROS_CNSL, new S57enum(4, "consol"));
     494        Catros.put(CatROS.ROS_RDF, new S57enum(5, "rdf")); Catros.put(CatROS.ROS_QTA, new S57enum(6, "qtg"));
     495        Catros.put(CatROS.ROS_AERO, new S57enum(7, "aeronautical")); Catros.put(CatROS.ROS_DECA, new S57enum(8, "decca"));
     496        Catros.put(CatROS.ROS_LORN, new S57enum(9, "loran")); Catros.put(CatROS.ROS_DGPS, new S57enum(10, "dgps"));
     497        Catros.put(CatROS.ROS_TORN, new S57enum(11, "toran")); Catros.put(CatROS.ROS_OMGA, new S57enum(12, "omega"));
     498        Catros.put(CatROS.ROS_SYLD, new S57enum(13, "syledis")); Catros.put(CatROS.ROS_CHKA, new S57enum(14, "chiaka"));
     499        Catros.put(CatROS.ROS_PCOM, new S57enum(15, "public_communication")); Catros.put(CatROS.ROS_COMB, new S57enum(16, "commercial_broadcast"));
     500        Catros.put(CatROS.ROS_FACS, new S57enum(17, "facsimile")); Catros.put(CatROS.ROS_TIME, new S57enum(18, "time_signal"));
     501        Catros.put(CatROS.ROS_TELE, new S57enum(19, "radio_telephone")); Catros.put(CatROS.ROS_AISB, new S57enum(20, "ais_base"));
     502        Catros.put(CatROS.ROS_PAIS, new S57enum(21, "ais"));
    492503    }
    493504
     
    504515    public enum CatREA { REA_UNKN, REA_SFTY, REA_NANC, REA_NFSH, REA_NATR, REA_BRDS, REA_GRSV, REA_SEAL, REA_DEGR, REA_MILY, REA_HIST, REA_INST,
    505516        REA_NASF, REA_STRD, REA_MINE, REA_NDIV, REA_TBAV, REA_PROH, REA_SWIM, REA_WAIT, REA_RSCH, REA_DREG, REA_FSNC, REA_ERES, REA_NWAK, REA_SWNG,
    506         REA_WSKI, REA_ESSA, REA_PSSA, REA_DISA, REA_PSAR, REA_CRLS }
     517        REA_WSKI, REA_ESSA, REA_PSSA, REA_DISA, REA_PSAR, REA_CRLS, REA_RECR }
    507518
    508519    private static final EnumMap<CatREA, S57enum> Catrea = new EnumMap<>(CatREA.class); static {
     
    519530        Catrea.put(CatREA.REA_ESSA, new S57enum(27, "environmentally_sensitive")); Catrea.put(CatREA.REA_PSSA, new S57enum(28, "particularly_sensitive"));
    520531        Catrea.put(CatREA.REA_DISA, new S57enum(29, "disengagement")); Catrea.put(CatREA.REA_PSAR, new S57enum(30, "port_security")); Catrea.put(CatREA.REA_CRLS, new S57enum(31, "coral_sactuary"));
     532        Catrea.put(CatREA.REA_RECR, new S57enum(32, "recreation"));
    521533    }
    522534
     
    536548    }
    537549
     550    public enum CatSCH { SCH_UNKN, SCH_NORM, SCH_CLSR, SCH_UNMN }
     551
     552    private static final EnumMap<CatSCH, S57enum> Catsch = new EnumMap<>(CatSCH.class); static {
     553        Catsch.put(CatSCH.SCH_UNKN, new S57enum(0, ""));
     554        Catsch.put(CatSCH.SCH_NORM, new S57enum(1, "normal")); Catsch.put(CatSCH.SCH_CLSR, new S57enum(2, "closure")); Catsch.put(CatSCH.SCH_UNMN, new S57enum(3, "unmanned"));
     555    }
     556
    538557    public enum CatSEA { SEA_UNKN, SEA_GENL, SEA_GAT, SEA_BANK, SEA_DEEP, SEA_BAY, SEA_TRCH, SEA_BASN, SEA_MDFT, SEA_REEF, SEA_LEDG, SEA_CNYN, SEA_NRRW, SEA_SHOL,
    539558        SEA_KNOL, SEA_RIDG, SEA_SMNT, SEA_PNCL, SEA_APLN, SEA_PLTU, SEA_SPUR, SEA_SHLF, SEA_TRGH, SEA_SDDL, SEA_AHLL, SEA_APRN, SEA_AAPN, SEA_BLND, SEA_CMGN, SEA_CRIS,
    540559        SEA_ESCT, SEA_FAN, SEA_FZON, SEA_GAP, SEA_GUYT, SEA_HILL, SEA_HOLE, SEA_LEVE, SEA_MVLY, SEA_MOAT, SEA_MTNS, SEA_PEAK, SEA_PVNC, SEA_RISE, SEA_SCNL, SEA_SCHN,
    541         SEA_SEDG, SEA_SILL, SEA_SLOP, SEA_TRRC, SEA_VLLY, SEA_CANL, SEA_LAKE, SEA_RIVR, SEA_RECH }
     560        SEA_SEDG, SEA_SILL, SEA_SLOP, SEA_TRRC, SEA_VLLY, SEA_CANL, SEA_LAKE, SEA_RIVR, SEA_RECH, SEA_ICAY, SEA_SVOL }
    542561
    543562    private static final EnumMap<CatSEA, S57enum> Catsea = new EnumMap<>(CatSEA.class); static {
     
    561580        Catsea.put(CatSEA.SEA_TRRC, new S57enum(49, "terrace")); Catsea.put(CatSEA.SEA_VLLY, new S57enum(50, "valley")); Catsea.put(CatSEA.SEA_CANL, new S57enum(51, "canal"));
    562581        Catsea.put(CatSEA.SEA_LAKE, new S57enum(52, "lake")); Catsea.put(CatSEA.SEA_RIVR, new S57enum(53, "river")); Catsea.put(CatSEA.SEA_RECH, new S57enum(54, "reach"));
     582        Catsea.put(CatSEA.SEA_ICAY, new S57enum(55, "intertidal_cay")); Catsea.put(CatSEA.SEA_SVOL, new S57enum(56, "submarine_volcano"));
    563583    }
    564584
    565585    public enum CatSLC { SLC_UNKN, SLC_BWTR, SLC_GRYN, SLC_MOLE, SLC_PIER, SLC_PPER, SLC_WHRF, SLC_TWAL, SLC_RPRP, SLC_RVMT, SLC_SWAL, SLC_LSTP,
    566         SLC_RAMP, SLC_SWAY, SLC_FNDR, SLC_SFWF, SLC_OFWF, SLC_LRMP, SLC_LWAL, SLC_ICEB }
     586        SLC_RAMP, SLC_SWAY, SLC_FNDR, SLC_SFWF, SLC_OFWF, SLC_LRMP, SLC_LWAL, SLC_ICEB, SLC_SWIM }
    567587
    568588    private static final EnumMap<CatSLC, S57enum> Catslc = new EnumMap<>(CatSLC.class); static {
     
    574594        Catslc.put(CatSLC.SLC_SWAY, new S57enum(13, "slipway")); Catslc.put(CatSLC.SLC_FNDR, new S57enum(14, "fender")); Catslc.put(CatSLC.SLC_SFWF, new S57enum(15, "solid_face_wharf"));
    575595        Catslc.put(CatSLC.SLC_OFWF, new S57enum(16, "open_face_wharf")); Catslc.put(CatSLC.SLC_LRMP, new S57enum(17, "log_ramp")); Catslc.put(CatSLC.SLC_LWAL, new S57enum(18, "lock_wall"));
    576         Catslc.put(CatSLC.SLC_ICEB, new S57enum(18, "ice_breaker"));
     596        Catslc.put(CatSLC.SLC_ICEB, new S57enum(19, "ice_breaker")); Catslc.put(CatSLC.SLC_SWIM, new S57enum(20, "swimming"));
    577597    }
    578598
     
    615635        Catslo.put(CatSLO.SLO_UNKN, new S57enum(0, ""));
    616636        Catslo.put(CatSLO.SLO_CUTG, new S57enum(1, "cutting")); Catslo.put(CatSLO.SLO_EMBK, new S57enum(2, "embankment")); Catslo.put(CatSLO.SLO_DUNE, new S57enum(3, "dune"));
    617         Catslo.put(CatSLO.SLO_HILL, new S57enum(4, "hill")); Catslo.put(CatSLO.SLO_PINO, new S57enum(5, "pingo")); Catslo.put(CatSLO.SLO_CLIF, new S57enum(6, "cliff")); Catslo.put(CatSLO.SLO_SCRE, new S57enum(7, "scree"));
     637        Catslo.put(CatSLO.SLO_HILL, new S57enum(4, "hill")); Catslo.put(CatSLO.SLO_PINO, new S57enum(5, "pingo")); Catslo.put(CatSLO.SLO_CLIF, new S57enum(6, "cliff"));
     638        Catslo.put(CatSLO.SLO_SCRE, new S57enum(7, "scree"));
    618639    }
    619640
     
    639660    public enum CatSPM { SPM_UNKN, SPM_FDGA, SPM_TRGT, SPM_MSHP, SPM_DGRG, SPM_BARG, SPM_CABL, SPM_SPLG, SPM_OFAL, SPM_ODAS, SPM_RCDG, SPM_SPLA, SPM_RCZN, SPM_PRVT, SPM_MOOR, SPM_LNBY, SPM_LDNG, SPM_MDST,
    640661        SPM_NOTC, SPM_TSS, SPM_NANC, SPM_NBRT, SPM_NOTK, SPM_NTWT, SPM_RWAK, SPM_SPDL, SPM_STOP, SPM_WRNG, SPM_SSSN, SPM_RVCL, SPM_MVDT, SPM_RHCL, SPM_SCNT, SPM_BRTH, SPM_OHPC, SPM_CHEG, SPM_TELE, SPM_FCRS,
    641         SPM_MTRL, SPM_PLIN, SPM_ANCH, SPM_CLRG, SPM_CTRL, SPM_DIVG, SPM_RBCN, SPM_FGND, SPM_YCHT, SPM_HPRT, SPM_GPS, SPM_SLDG, SPM_NENT, SPM_WRKP, SPM_UKPP, SPM_WELH, SPM_CHSP, SPM_MFRM, SPM_AREF }
     662        SPM_MTRL, SPM_PLIN, SPM_ANCH, SPM_CLRG, SPM_CTRL, SPM_DIVG, SPM_RBCN, SPM_FGND, SPM_YCHT, SPM_HPRT, SPM_GPS, SPM_SLDG, SPM_NENT, SPM_WRKP, SPM_UKPP, SPM_WELH, SPM_CHSP, SPM_MFRM, SPM_AREF,
     663        SPM_ICE, SPM_NATR, SPM_FAD, SPM_WREK, SPM_CUST, SPM_CSWY, SPM_WAVR, }
    642664
    643665    private static final EnumMap<CatSPM, S57enum> Catspm = new EnumMap<>(CatSPM.class); static {
     
    662684        Catspm.put(CatSPM.SPM_NENT, new S57enum(50, "no_entry")); Catspm.put(CatSPM.SPM_WRKP, new S57enum(51, "work_in_progress")); Catspm.put(CatSPM.SPM_UKPP, new S57enum(52, "unknown_purpose"));
    663685        Catspm.put(CatSPM.SPM_WELH, new S57enum(53, "wellhead")); Catspm.put(CatSPM.SPM_CHSP, new S57enum(54, "channel_separation")); Catspm.put(CatSPM.SPM_MFRM, new S57enum(55, "marine_farm"));
    664         Catspm.put(CatSPM.SPM_AREF, new S57enum(56, "artificial_reef"));
     686        Catspm.put(CatSPM.SPM_AREF, new S57enum(56, "artificial_reef")); Catspm.put(CatSPM.SPM_ICE, new S57enum(57, "ice")); Catspm.put(CatSPM.SPM_NATR, new S57enum(58, "nature_reserve"));
     687        Catspm.put(CatSPM.SPM_FAD, new S57enum(59, "fish_aggregator")); Catspm.put(CatSPM.SPM_WREK, new S57enum(60, "wreck")); Catspm.put(CatSPM.SPM_CUST, new S57enum(61, "customs"));
     688        Catspm.put(CatSPM.SPM_CSWY, new S57enum(62, "causeway")); Catspm.put(CatSPM.SPM_WAVR, new S57enum(63, "wave_recorder"));
    665689    }
    666690
     
    846870    }
    847871
    848     public enum LitVIS { LIT_UNKN, LIT_HIGH, LIT_LOW, LIT_FANT, LIT_INTS, LIT_UINT, LIT_RSTR, LIT_OBSC, LIT_POBS }
     872    public enum LitVIS { LIT_UNKN, LIT_HIGH, LIT_LOW, LIT_FANT, LIT_INTS, LIT_UINT, LIT_RSTR, LIT_OBSC, LIT_POBS, LIT_ILOR }
    849873
    850874    private static final EnumMap<LitVIS, S57enum> Litvis = new EnumMap<>(LitVIS.class); static {
     
    852876        Litvis.put(LitVIS.LIT_HIGH, new S57enum(1, "high")); Litvis.put(LitVIS.LIT_LOW, new S57enum(2, "low")); Litvis.put(LitVIS.LIT_FANT, new S57enum(3, "faint"));
    853877        Litvis.put(LitVIS.LIT_INTS, new S57enum(4, "intensified")); Litvis.put(LitVIS.LIT_UINT, new S57enum(5, "unintensified")); Litvis.put(LitVIS.LIT_RSTR, new S57enum(6, "restricted"));
    854         Litvis.put(LitVIS.LIT_OBSC, new S57enum(7, "obscured")); Litvis.put(LitVIS.LIT_POBS, new S57enum(8, "part_obscured"));
     878        Litvis.put(LitVIS.LIT_OBSC, new S57enum(7, "obscured")); Litvis.put(LitVIS.LIT_POBS, new S57enum(8, "part_obscured")); Litvis.put(LitVIS.LIT_ILOR, new S57enum(9, "in_line"));
    855879    }
    856880
     
    896920
    897921    public enum PrdPRD { PRD_UNKN, PRD_OIL, PRD_GAS, PRD_WATR, PRD_STON, PRD_COAL, PRD_ORE, PRD_CHEM, PRD_DWTR, PRD_MILK, PRD_BXIT, PRD_COKE, PRD_IIGS, PRD_SALT,
    898         PRD_SAND, PRD_TMBR, PRD_SDST, PRD_SCRP, PRD_LNA, PRD_LPA, PRD_WINE, PRD_CMNT, PRD_GRAN }
     922        PRD_SAND, PRD_TMBR, PRD_SDST, PRD_SCRP, PRD_LNA, PRD_LPA, PRD_WINE, PRD_CMNT, PRD_GRAN, PRD_ELEC, PRD_ICE, PRD_CLAY }
    899923
    900924    private static final EnumMap<PrdPRD, S57enum> Prodct = new EnumMap<>(PrdPRD.class); static {
     
    907931        Prodct.put(PrdPRD.PRD_SDST, new S57enum(16, "sawdust")); Prodct.put(PrdPRD.PRD_SCRP, new S57enum(17, "scrap")); Prodct.put(PrdPRD.PRD_LNA, new S57enum(18, "lng"));
    908932        Prodct.put(PrdPRD.PRD_LPA, new S57enum(19, "lpg")); Prodct.put(PrdPRD.PRD_WINE, new S57enum(20, "wine")); Prodct.put(PrdPRD.PRD_CMNT, new S57enum(21, "cement"));
    909         Prodct.put(PrdPRD.PRD_GRAN, new S57enum(22, "grain"));
     933        Prodct.put(PrdPRD.PRD_GRAN, new S57enum(22, "grain")); Prodct.put(PrdPRD.PRD_ELEC, new S57enum(23, "electricity")); Prodct.put(PrdPRD.PRD_ICE, new S57enum(24, "ice"));
     934        Prodct.put(PrdPRD.PRD_CLAY, new S57enum(25, "clay"));
    910935    }
    911936
     
    939964        Restrn.put(RstRST.RST_NBRT, new S57enum(31, "no_berthing")); Restrn.put(RstRST.RST_RBRT, new S57enum(32, "restricted_berthing")); Restrn.put(RstRST.RST_NMFT, new S57enum(33, "no_making_fast"));
    940965        Restrn.put(RstRST.RST_RMFT, new S57enum(34, "restricted_making_fast")); Restrn.put(RstRST.RST_NTRN, new S57enum(35, "no_turning")); Restrn.put(RstRST.RST_RFWD, new S57enum(36, "restricted_fairway_depth"));
    941         Restrn.put(RstRST.RST_RFWW, new S57enum(37, "restricted_fairway_width")); Restrn.put(RstRST.RST_NSWM, new S57enum(38, "no_swimming"));
    942     }
    943 
    944     public enum SigGEN { GEN_UNKN, GEN_AUTO, GEN_WAVE, GEN_HAND, GEN_WIND }
     966        Restrn.put(RstRST.RST_RFWW, new S57enum(37, "restricted_fairway_width")); Restrn.put(RstRST.RST_NSWM, new S57enum(39, "no_swimming"));
     967    }
     968
     969    public enum SigGEN { GEN_UNKN, GEN_AUTO, GEN_WAVE, GEN_HAND, GEN_WIND, GEN_RADO, GEN_CALL }
    945970
    946971    private static final EnumMap<SigGEN, S57enum> Siggen = new EnumMap<>(SigGEN.class); static {
    947972        Siggen.put(SigGEN.GEN_UNKN, new S57enum(0, ""));
    948         Siggen.put(SigGEN.GEN_AUTO, new S57enum(1, "automatic")); Siggen.put(SigGEN.GEN_WAVE, new S57enum(2, "wave")); Siggen.put(SigGEN.GEN_HAND, new S57enum(3, "hand")); Siggen.put(SigGEN.GEN_WIND, new S57enum(4, "wind"));
     973        Siggen.put(SigGEN.GEN_AUTO, new S57enum(1, "automatic")); Siggen.put(SigGEN.GEN_WAVE, new S57enum(2, "wave")); Siggen.put(SigGEN.GEN_HAND, new S57enum(3, "hand"));
     974        Siggen.put(SigGEN.GEN_WIND, new S57enum(4, "wind")); Siggen.put(SigGEN.GEN_RADO, new S57enum(5, "radio")); Siggen.put(SigGEN.GEN_CALL, new S57enum(6, "call"));
    949975    }
    950976
    951977    public enum StsSTS { STS_UNKN, STS_PERM, STS_OCAS, STS_RCMD, STS_NIUS, STS_IMTT, STS_RESV, STS_TEMP, STS_PRIV, STS_MAND, STS_EXTD, STS_ILLD, STS_HIST, STS_PBLC,
    952         STS_SYNC, STS_WCHD, STS_UWCD, STS_EDBT, STS_OREQ, STS_DPAW, STS_RSNG, STS_INCR, STS_DECR, TS_STNG, STS_GOOD, STS_MODY, STS_POOR }
     978        STS_SYNC, STS_WCHD, STS_UWCD, STS_EDBT, STS_OREQ, STS_DPAW, STS_RSNG, STS_INCR, STS_DECR, TS_STNG, STS_GOOD, STS_MODY, STS_POOR, STS_BUOY }
    953979
    954980    private static final EnumMap<StsSTS, S57enum> Status = new EnumMap<>(StsSTS.class); static {
     
    962988        Status.put(StsSTS.STS_DPAW, new S57enum(20, "drop_away")); Status.put(StsSTS.STS_RSNG, new S57enum(21, "rising")); Status.put(StsSTS.STS_INCR, new S57enum(22, "increasing"));
    963989        Status.put(StsSTS.STS_DECR, new S57enum(23, "decreasing")); Status.put(StsSTS.TS_STNG, new S57enum(24, "strong")); Status.put(StsSTS.STS_GOOD, new S57enum(25, "good"));
    964         Status.put(StsSTS.STS_MODY, new S57enum(26, "moderately")); Status.put(StsSTS.STS_POOR, new S57enum(27, "poor"));
     990        Status.put(StsSTS.STS_MODY, new S57enum(26, "moderately")); Status.put(StsSTS.STS_POOR, new S57enum(27, "poor")); Status.put(StsSTS.STS_BUOY, new S57enum(28, "buoyed"));
    965991    }
    966992
     
    973999    }
    9741000
    975     public enum TecSOU { SOU_UNKN, SOU_ESND, SOU_FSSN, SOU_MLBM, SOU_DIVR, SOU_LDLN, SOU_WDRG, SOU_LASR, SOU_VACC, SOU_EMAG, SOU_PHGY, SOU_SATL, SOU_LEVL, SOU_SSSN, SOU_COMP }
     1001    public enum TecSOU { SOU_UNKN, SOU_ESND, SOU_FSSN, SOU_MLBM, SOU_DIVR, SOU_LDLN, SOU_WDRG, SOU_LASR, SOU_VACC, SOU_EMAG, SOU_PHGY, SOU_SATL, SOU_LEVL, SOU_SSSN, SOU_COMP,
     1002        SOU_LIDR, SOU_SARD, SOU_HYPS}
    9761003
    9771004    private static final EnumMap<TecSOU, S57enum> Tecsou = new EnumMap<>(TecSOU.class); static {
     
    9821009        Tecsou.put(TecSOU.SOU_PHGY, new S57enum(10, "photogrammetry")); Tecsou.put(TecSOU.SOU_SATL, new S57enum(11, "satellite")); Tecsou.put(TecSOU.SOU_LEVL, new S57enum(12, "levelling"));
    9831010        Tecsou.put(TecSOU.SOU_SSSN, new S57enum(13, "side-scan_sonar_swept")); Tecsou.put(TecSOU.SOU_COMP, new S57enum(14, "computer"));
     1011        Tecsou.put(TecSOU.SOU_LIDR, new S57enum(15, "lidar")); Tecsou.put(TecSOU.SOU_SARD, new S57enum(16, "sa_radar")); Tecsou.put(TecSOU.SOU_HYPS, new S57enum(17, "hyperspectral"));
    9841012    }
    9851013
     
    10481076    public enum VerDAT { DAT_UNKN, DAT_MLWS, DAT_MLLWS, DAT_MSL, DAT_LLW, DAT_MLW, DAT_LLWS, DAT_AMLWS, DAT_ISLW, DAT_LWS, DAT_ALAT, DAT_NLLW, DAT_MLLW, DAT_LW, DAT_AMLW, DAT_AMLLW,
    10491077        DAT_MHW, DAT_MHWS, DAT_HW, DAT_AMSL, DAT_HWS, DAT_MHHW, DAT_ESLW, DAT_LAT, DAT_LOCAL, DAT_IGLD, DAT_MWL, DAT_LLWLT, DAT_HHWLT, DAT_NHHW, DAT_HAT, DAT_LLWRL, DAT_LHWRL,
    1050         DAT_LMWRL, DAT_EHW, DAT_HSHW, DAT_RLWL, DAT_HSHWD, DAT_DRLWRL, DAT_RPWL, DAT_RNBL, DAT_OHIO }
     1078        DAT_LMWRL, DAT_EHW, DAT_HSHW, DAT_RLWL, DAT_HSHWD, DAT_DRLWRL, DAT_RPWL, DAT_RNBL, DAT_OHIO, DAT_BALT }
    10511079
    10521080    private static final EnumMap<VerDAT, S57enum> Verdat = new EnumMap<>(VerDAT.class); static {
     
    10651093        Verdat.put(VerDAT.DAT_EHW, new S57enum(34, "ehw_dglw")); Verdat.put(VerDAT.DAT_HSHW, new S57enum(35, "hshw_dhsw")); Verdat.put(VerDAT.DAT_RLWL, new S57enum(36, "rlwl_donau"));
    10661094        Verdat.put(VerDAT.DAT_HSHWD, new S57enum(37, "hshw_donau")); Verdat.put(VerDAT.DAT_DRLWRL, new S57enum(38, "drlwrl_olr")); Verdat.put(VerDAT.DAT_RPWL, new S57enum(39, "rpwl"));
    1067         Verdat.put(VerDAT.DAT_RNBL, new S57enum(40, "rnbl")); Verdat.put(VerDAT.DAT_OHIO, new S57enum(41, "ohio_rd"));
     1095        Verdat.put(VerDAT.DAT_RNBL, new S57enum(40, "rnbl")); Verdat.put(VerDAT.DAT_OHIO, new S57enum(41, "ohio_rd")); Verdat.put(VerDAT.DAT_BALT, new S57enum(44, "baltic_2000"));
     1096    }
     1097
     1098    public enum CatVAN { VAN_UNKN, VAN_NCAR, VAN_SCAR, VAN_ECAR, VAN_WCAR, VAN_PLAT, VAN_SLAT, VAN_PCHP, VAN_PCHS, VAN_IDGR, VAN_SAFW, VAN_SPPM, VAN_WREK }
     1099
     1100    private static final EnumMap<CatVAN, S57enum> Catvan = new EnumMap<>(CatVAN.class); static {
     1101        Catvan.put(CatVAN.VAN_UNKN, new S57enum(0, ""));
     1102        Catvan.put(CatVAN.VAN_NCAR, new S57enum(1, "north_cardinal")); Catvan.put(CatVAN.VAN_SCAR, new S57enum(2, "south_cardinal"));
     1103        Catvan.put(CatVAN.VAN_ECAR, new S57enum(3, "east_cardinal")); Catvan.put(CatVAN.VAN_WCAR, new S57enum(4, "west_cardinal"));
     1104        Catvan.put(CatVAN.VAN_PLAT, new S57enum(5, "port_lateral")); Catvan.put(CatVAN.VAN_SLAT, new S57enum(6, "starboard_lateral"));
     1105        Catvan.put(CatVAN.VAN_PCHP, new S57enum(7, "preferred_port")); Catvan.put(CatVAN.VAN_PCHS, new S57enum(8, "preferred_starboard"));
     1106        Catvan.put(CatVAN.VAN_IDGR, new S57enum(9, "isolated_danger")); Catvan.put(CatVAN.VAN_SAFW, new S57enum(10, "safe_water"));
     1107        Catvan.put(CatVAN.VAN_SPPM, new S57enum(11, "special_purpose")); Catvan.put(CatVAN.VAN_WREK, new S57enum(12, "wreck"));
    10681108    }
    10691109
     
    14311471        keys.put(Att.CATLIT, new S57key(Conv.L, Catlit)); keys.put(Att.CATMFA, new S57key(Conv.E, Catmfa)); keys.put(Att.CATMPA, new S57key(Conv.L, Catmpa));
    14321472        keys.put(Att.CATMOR, new S57key(Conv.E, Catmor)); keys.put(Att.CATNAV, new S57key(Conv.E, Catnav)); keys.put(Att.CATOBS, new S57key(Conv.E, Catobs));
    1433         keys.put(Att.CATOFP, new S57key(Conv.L, Catofp)); keys.put(Att.CATOLB, new S57key(Conv.E, Catolb)); keys.put(Att.CATPLE, new S57key(Conv.E, Catple));
    1434         keys.put(Att.CATPIL, new S57key(Conv.E, Catpil)); keys.put(Att.CATPIP, new S57key(Conv.L, Catpip)); keys.put(Att.CATPRA, new S57key(Conv.E, Catpra));
    1435         keys.put(Att.CATPYL, new S57key(Conv.E, Catpyl)); keys.put(Att.CATRAS, new S57key(Conv.E, Catras)); keys.put(Att.CATRTB, new S57key(Conv.E, Catrtb));
    1436         keys.put(Att.CATROS, new S57key(Conv.L, Catros)); keys.put(Att.CATTRK, new S57key(Conv.E, Cattrk)); keys.put(Att.CATRSC, new S57key(Conv.L, Catrsc));
    1437         keys.put(Att.CATREA, new S57key(Conv.L, Catrea)); keys.put(Att.CATROD, new S57key(Conv.E, Catrod)); keys.put(Att.CATRUN, new S57key(Conv.E, Catrun));
    1438         keys.put(Att.CATSEA, new S57key(Conv.E, Catsea)); keys.put(Att.CATSIL, new S57key(Conv.E, Catsil)); keys.put(Att.CATSLO, new S57key(Conv.E, Catslo));
    1439         keys.put(Att.CATSCF, new S57key(Conv.L, Catscf)); keys.put(Att.CATSLC, new S57key(Conv.E, Catslc)); keys.put(Att.CATSIT, new S57key(Conv.L, Catsit));
    1440         keys.put(Att.CATSIW, new S57key(Conv.L, Catsiw)); keys.put(Att.CATSPM, new S57key(Conv.L, Catspm)); keys.put(Att.CATTSS, new S57key(Conv.E, Cattss));
    1441         keys.put(Att.CATVEG, new S57key(Conv.L, Catveg)); keys.put(Att.CATWAT, new S57key(Conv.E, Catwat)); keys.put(Att.CATWED, new S57key(Conv.E, Catwed));
    1442         keys.put(Att.CATWRK, new S57key(Conv.E, Catwrk)); keys.put(Att.COLOUR, new S57key(Conv.L, Colour));
    1443         keys.put(Att.COLPAT, new S57key(Conv.L, Colpat)); keys.put(Att.COMCHA, new S57key(Conv.A, null)); keys.put(Att.CPDATE, new S57key(Conv.A, null));
    1444         keys.put(Att.CSCALE, new S57key(Conv.I, null)); keys.put(Att.CONDTN, new S57key(Conv.E, Condtn)); keys.put(Att.CONRAD, new S57key(Conv.E, Conrad));
    1445         keys.put(Att.CONVIS, new S57key(Conv.E, Convis)); keys.put(Att.CURVEL, new S57key(Conv.F, null)); keys.put(Att.DATEND, new S57key(Conv.A, null));
    1446         keys.put(Att.DATSTA, new S57key(Conv.A, null)); keys.put(Att.DRVAL1, new S57key(Conv.F, null)); keys.put(Att.DRVAL2, new S57key(Conv.F, null));
    1447         keys.put(Att.ELEVAT, new S57key(Conv.F, null)); keys.put(Att.ESTRNG, new S57key(Conv.F, null));
     1473        keys.put(Att.CATOFP, new S57key(Conv.L, Catofp)); keys.put(Att.CATOLB, new S57key(Conv.E, Catolb)); keys.put(Att.CATOPA, new S57key(Conv.E, Catopa));
     1474        keys.put(Att.CATPLE, new S57key(Conv.E, Catple)); keys.put(Att.CATPIL, new S57key(Conv.E, Catpil)); keys.put(Att.CATPIP, new S57key(Conv.L, Catpip));
     1475        keys.put(Att.CATPRA, new S57key(Conv.E, Catpra)); keys.put(Att.CATPYL, new S57key(Conv.E, Catpyl)); keys.put(Att.CATRAS, new S57key(Conv.E, Catras));
     1476        keys.put(Att.CATRTB, new S57key(Conv.E, Catrtb)); keys.put(Att.CATROS, new S57key(Conv.L, Catros)); keys.put(Att.CATTRK, new S57key(Conv.E, Cattrk));
     1477        keys.put(Att.CATRSC, new S57key(Conv.L, Catrsc)); keys.put(Att.CATREA, new S57key(Conv.L, Catrea)); keys.put(Att.CATROD, new S57key(Conv.E, Catrod));
     1478        keys.put(Att.CATRUN, new S57key(Conv.E, Catrun)); keys.put(Att.CATSEA, new S57key(Conv.E, Catsea)); keys.put(Att.CATSIL, new S57key(Conv.E, Catsil));
     1479        keys.put(Att.CATSLO, new S57key(Conv.E, Catslo)); keys.put(Att.CATSCF, new S57key(Conv.L, Catscf)); keys.put(Att.CATSLC, new S57key(Conv.E, Catslc));
     1480        keys.put(Att.CATSIT, new S57key(Conv.L, Catsit)); keys.put(Att.CATSIW, new S57key(Conv.L, Catsiw)); keys.put(Att.CATSPM, new S57key(Conv.L, Catspm));
     1481        keys.put(Att.CATTSS, new S57key(Conv.E, Cattss)); keys.put(Att.CATVEG, new S57key(Conv.L, Catveg)); keys.put(Att.CATWAT, new S57key(Conv.E, Catwat));
     1482        keys.put(Att.CATWED, new S57key(Conv.E, Catwed)); keys.put(Att.CATWRK, new S57key(Conv.E, Catwrk)); keys.put(Att.CATVAN, new S57key(Conv.E, Catvan));
     1483        keys.put(Att.COLOUR, new S57key(Conv.L, Colour)); keys.put(Att.COLPAT, new S57key(Conv.L, Colpat)); keys.put(Att.COMCHA, new S57key(Conv.A, null));
     1484        keys.put(Att.CPDATE, new S57key(Conv.A, null));   keys.put(Att.CSCALE, new S57key(Conv.I, null)); keys.put(Att.CONDTN, new S57key(Conv.E, Condtn));
     1485        keys.put(Att.CONRAD, new S57key(Conv.E, Conrad)); keys.put(Att.CONVIS, new S57key(Conv.E, Convis)); keys.put(Att.CURVEL, new S57key(Conv.F, null));
     1486        keys.put(Att.DATEND, new S57key(Conv.A, null)); keys.put(Att.DATSTA, new S57key(Conv.A, null)); keys.put(Att.DRVAL1, new S57key(Conv.F, null));
     1487        keys.put(Att.DRVAL2, new S57key(Conv.F, null)); keys.put(Att.ELEVAT, new S57key(Conv.F, null)); keys.put(Att.ESTRNG, new S57key(Conv.F, null));
    14481488        keys.put(Att.EXCLIT, new S57key(Conv.E, Exclit)); keys.put(Att.EXPSOU, new S57key(Conv.E, Expsou)); keys.put(Att.FUNCTN, new S57key(Conv.L, Functn));
    14491489        keys.put(Att.HEIGHT, new S57key(Conv.F, null)); keys.put(Att.HUNITS, new S57key(Conv.E, Hunits)); keys.put(Att.HORACC, new S57key(Conv.F, null));
  • applications/editors/josm/plugins/seachart/src/symbols/Beacons.java

    r34237 r34906  
    166166        RadarStation.add(new Instr(Form.STRK, new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    167167        RadarStation.add(new Instr(Form.FILL, new Color(0xd400d4)));
    168         RadarStation.add(new Instr(Form.ELPS, new Ellipse2D.Double(-125, -125, 250, 250)));
     168        RadarStation.add(new Instr(Form.ELPS, new Ellipse2D.Double(-150, -150, 300, 300)));
    169169    }
    170170
Note: See TracChangeset for help on using the changeset viewer.