Revision 14047 branches/v10/extensions/extOracleSpatial/src/es/prodevelop/cit/gvsig/fmap/drivers/jdbc/oracle/OracleSpatialDriver.java

View differences:

OracleSpatialDriver.java
175 175
    public static final int GEODETIC_FULLEXTENT_SAMPLE_SIZE = 50;
176 176
    public static final String GEODETIC_SRID = "8307";
177 177
    public static final String ASSUMED_ORACLE_SRID = "8307";
178

  
178
    
179 179
    // ------------------------------------------------
180 180
    public static final String NAME = "Oracle Spatial Database Driver";
181 181
    public static final int ID_COLUMN_INDEX = 1;
......
684 684
    }
685 685

  
686 686
    private int getShapeTypeOfStruct(STRUCT sample) throws SQLException {
687
        int code = ((NUMBER) sample.getOracleAttributes()[0]).intValue() % 10;
688 687

  
689
        switch (code) {
688
        int code = ((NUMBER) sample.getOracleAttributes()[0]).intValue();
689
        
690
        int type_part = code % 10;
691
        int dim_part = code / 1000;
692

  
693
        int z_added = 0;
694
        if ((dim_part == 3) || (dim_part == 4)) {
695
        	z_added = 512;
696
        }
697

  
698
        switch (type_part) {
690 699
        case 1:
691
            return FShape.POINT;
700
            return z_added + FShape.POINT;
692 701

  
693 702
        case 2:
694
            return FShape.LINE;
703
            return z_added + FShape.LINE;
695 704

  
696 705
        case 3:
697
            return FShape.POLYGON;
706
            return z_added + FShape.POLYGON;
698 707

  
699 708
        case 4:
700
            return FShape.MULTI;
709
            return z_added + FShape.MULTI;
701 710

  
702 711
        case 5:
703
            return FShape.MULTIPOINT;
712
            return z_added + FShape.MULTIPOINT;
704 713

  
705 714
        case 6:
706
            return FShape.LINE;
715
            return z_added + FShape.LINE;
707 716

  
708 717
        case 7:
709
            return FShape.POLYGON;
718
            return z_added + FShape.POLYGON;
710 719
        }
711 720

  
712 721
        logger.error("Unknown geometry type: " + code);

Also available in: Unified diff