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
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