Ignore:
Timestamp:
2017-09-22T22:22:46+02:00 (7 years ago)
Author:
donvip
Message:

Edigeo: improve support of NF Z 52-000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileGEO.java

    r33653 r33654  
    2929
    3030    /**
    31      * Coordinates reference.
     31     * Coordinates reference. 7.4.2.1
    3232     */
    3333    public static class CoorReference extends GeoBlock {
     
    3838            PROJECTED("MAP");
    3939
    40             String code;
     40            final String code;
    4141            ReferenceType(String code) {
    4242                this.code = code;
     
    5757            THREE_DIM_OR_NO_ALTITUDE(2);
    5858
    59             int code;
     59            final int code;
    6060            AltitudeSystem(int code) {
    6161                this.code = code;
     
    7676            BATHYMETRIC(2);
    7777
    78             int code;
     78            final int code;
    7979            AltitudeSystemType(int code) {
    8080                this.code = code;
     
    186186        /** DIM */ int nDim;
    187187        /** ALS */ AltitudeSystem altitudeSystem;
    188         /**     */ AltitudeSystemType altitudeSystemType; // TODO
    189         /**     */ String altitudeSystemName = ""; // TODO
    190         /**     */ String altitudeSystemCode = ""; // TODO
     188        /** ALT */ AltitudeSystemType altitudeSystemType;
     189        /** ALN */ String altitudeSystemName = "";
     190        /** ALL */ String altitudeSystemCode = "";
    191191        /** UNH */ String unitHorizontal = "";
    192         /**     */ String unitVertical = ""; // TODO
     192        /** UNV */ String unitVertical = "";
    193193
    194194        CoorReference(Lot lot, String type) {
     
    204204            case "DIM": nDim = safeGetInt(r); break;
    205205            case "ALS": altitudeSystem = AltitudeSystem.of(safeGetInt(r)); break;
     206            case "ALT": altitudeSystemType = AltitudeSystemType.of(safeGetInt(r)); break;
     207            case "ALN": safeGet(r, s -> altitudeSystemName += s); break;
     208            case "ALL": safeGet(r, s -> altitudeSystemCode += s); break;
    206209            case "UNH": safeGet(r, s -> unitHorizontal += s); break;
     210            case "UNV": safeGet(r, s -> unitVertical += s); break;
    207211            default:
    208212                super.processRecord(r);
     
    291295
    292296    /**
    293      * Offset.
     297     * Offset. 7.4.2.2
    294298     */
    295299    public static class Offset extends GeoBlock {
    296300
    297         /**     */ int nOffsetPoints; // TODO
    298         /**     */ int nControlPoints; // TODO
    299         /**     */ final List<String> offsetPointIds = new ArrayList<>(); // TODO
    300         /**     */ final List<EastNorth> offsetInputCoor = new ArrayList<>(); // TODO
    301         /**     */ final List<EastNorth> offsetReferCoor = new ArrayList<>(); // TODO
    302         /**     */ final List<String> controlPointIds = new ArrayList<>(); // TODO
    303         /**     */ final List<EastNorth> controlInputCoor = new ArrayList<>(); // TODO
    304         /**     */ final List<EastNorth> controlReferCoor = new ArrayList<>(); // TODO
     301        /** RPC */ int nOffsetPoints;
     302        /** RPI */ final List<String> offsetPointIds = new ArrayList<>();
     303        /** RP1 */ final List<EastNorth> offsetInputCoor = new ArrayList<>();
     304        /** RP2 */ final List<EastNorth> offsetReferCoor = new ArrayList<>();
     305        /** CPC */ int nControlPoints;
     306        /** CPI */ final List<String> controlPointIds = new ArrayList<>();
     307        /** CP1 */ final List<EastNorth> controlInputCoor = new ArrayList<>();
     308        /** CP2 */ final List<EastNorth> controlReferCoor = new ArrayList<>();
    305309
    306310        Offset(Lot lot, String type) {
    307311            super(lot, type);
     312        }
     313
     314        @Override
     315        void processRecord(EdigeoRecord r) {
     316            switch (r.name) {
     317            case "RPC": nOffsetPoints = safeGetInt(r); break;
     318            case "RPI": safeGet(r, offsetPointIds); break;
     319            case "RP1": offsetInputCoor.add(safeGetEastNorth(r)); break;
     320            case "RP2": offsetReferCoor.add(safeGetEastNorth(r)); break;
     321            case "CPC": nControlPoints = safeGetInt(r); break;
     322            case "CPI": safeGet(r, controlPointIds); break;
     323            case "CP1": controlInputCoor.add(safeGetEastNorth(r)); break;
     324            case "CP2": controlReferCoor.add(safeGetEastNorth(r)); break;
     325            default: super.processRecord(r);
     326            }
    308327        }
    309328
     
    343362        return blocks.getInstances(CoorReference.class).get(0);
    344363    }
     364
     365    /**
     366     * Returns the offset descriptor.
     367     * @return the offset descriptor
     368     */
     369    public Offset getOffset() {
     370        return blocks.getInstances(Offset.class).get(0);
     371    }
    345372}
Note: See TracChangeset for help on using the changeset viewer.