Changeset 32380 in osm for applications/editors/josm/plugins/seachart/src/s57/S57dec.java
- Timestamp:
- 2016-06-23T14:17:55+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/seachart/src/s57/S57dec.java
r31722 r32380 21 21 S57dat.rnum = 0; 22 22 byte[] leader = new byte[24]; 23 byte[] record = new byte[0]; 23 24 boolean ddr = false; 24 25 int length = 0; … … 40 41 try { 41 42 length = Integer.parseInt(new String(leader, 0, 5)) - 24; 43 record = new byte[length]; 42 44 ddr = (leader[6] == 'L'); 43 45 fields = Integer.parseInt(new String(leader, 12, 5)) - 24; … … 50 52 mapts = leader[23] - '0'; 51 53 entry = mapfl + mapfp + mapts; 52 byte[] record = new byte[length];53 54 if (in.read(record) != length) 54 55 break; … … 61 62 case "0001": 62 63 int i8rn = ((Long) S57dat.decSubf(record, fields + pos, S57field.I8RI, S57subf.I8RN)).intValue(); 63 if (i8rn != ++S57dat.rnum) { 64 System.err.println("Out of order record ID"); 65 in.close(); 66 System.exit(-1); 67 } 64 // if (i8rn != ++S57dat.rnum) { 65 // System.err.println("Out of order record ID"); 66 // in.close(); 67 // System.exit(-1); 68 // } 68 69 break; 69 70 case "DSSI": … … 93 94 break; 94 95 case "FOID": 95 name = ( Long) S57dat.decSubf(record, fields + pos, S57field.LNAM, S57subf.LNAM);96 name = (long) S57dat.decSubf(record, fields + pos, S57field.LNAM, S57subf.LNAM); 96 97 map.newFeature(name, pflag, objl); 97 98 break; … … 109 110 S57dat.setField(record, fields + pos, S57field.FFPT, len); 110 111 do { 111 name = ( Long) S57dat.decSubf(S57subf.LNAM);112 name = (long) S57dat.decSubf(S57subf.LNAM); 112 113 int rind = ((Long) S57dat.decSubf(S57subf.RIND)).intValue(); 113 114 S57dat.decSubf(S57subf.COMT); 114 map. newObj(name, rind);115 map.refObj(name, rind); 115 116 } while (S57dat.more()); 116 117 break; … … 118 119 S57dat.setField(record, fields + pos, S57field.FSPT, len); 119 120 do { 120 name = ( Long) S57dat.decSubf(S57subf.NAME) << 16;121 name = (long) S57dat.decSubf(S57subf.NAME) << 16; 121 122 map.newPrim(name, (Long) S57dat.decSubf(S57subf.ORNT), (Long) S57dat.decSubf(S57subf.USAG)); 122 123 S57dat.decSubf(S57subf.MASK); … … 138 139 } 139 140 name <<= 32; 140 name += ( Long) S57dat.decSubf(S57subf.RCID);141 name += (long) S57dat.decSubf(S57subf.RCID); 141 142 name <<= 16; 142 143 if (nflag == Nflag.ANON) {
Note:
See TracChangeset
for help on using the changeset viewer.
