Revision 47606 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.sqlite/org.gvsig.sqlite.provider/src/main/java/org/gvsig/sqlite/dal/functions/ST_Envelope.java

View differences:

ST_Envelope.java
23 23

  
24 24
import java.sql.SQLException;
25 25
import org.gvsig.fmap.geom.Geometry;
26
import org.gvsig.fmap.geom.primitive.Envelope;
26 27
import org.gvsig.sqlite.dal.geopackage.GeopackageGeometryBuilder;
27 28
import org.gvsig.sqlite.dal.geopackage.GeopackageGeometryParser;
28 29
import org.gvsig.sqlite.dal.geopackage.GeopackageUtils;
......
49 50
            }
50 51
            SQLiteConnection conn = this.getConnection();
51 52
            GeopackageGeometryParser parser = GeopackageUtils.createGeometryParser();
52
            Geometry geom = parser.parseToGeometry(conn,bytes);
53
            if (geom == null) {
54
                this.result();
55
                return;
53
            parser.parseEnvelope(bytes);
54
            Envelope env = parser.getEnvelope(conn);
55

  
56
            Geometry geom;
57
            if (env == null) {
58
                geom = parser.parseToGeometry(conn, bytes);
59
                if(geom == null) {
60
                    this.result();
61
                    return;
62
                }
63
                geom = geom.getEnvelope().getGeometry();
64
            } else {
65
                geom = env.getGeometry();
56 66
            }
67

  
57 68
            GeopackageGeometryBuilder builder = GeopackageUtils.createGeometryBuilder();
58
            builder.setGeometry(conn, geom.getEnvelope().getGeometry());
69
            builder.setGeometry(conn, geom);
59 70
            bytes = builder.build();
60 71
            if (bytes == null) {
61 72
                this.result();
62 73
            } else {
63 74
                this.result(bytes);
64 75
            }
65

  
66 76
        } catch (Throwable ex) {
67
            throw new SQLException("Can't get geometry's envelope", ex);
77
            throw new SQLException("Can't get envelope", ex);
68 78
        }
69 79
    }
70 80

  

Also available in: Unified diff