Mercurial > dive4elements > gnv-client
diff geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java @ 383:0b813ae17173
Added Point in Polygon Query Support to ArcSDE-Statement-Processing
geo-backend/trunk@423 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 15 Dec 2009 10:02:24 +0000 |
parents | 0100ebf6630f |
children | fac02bf1c685 |
line wrap: on
line diff
--- a/geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java Fri Dec 11 10:45:18 2009 +0000 +++ b/geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java Tue Dec 15 10:02:24 2009 +0000 @@ -24,6 +24,8 @@ import com.esri.sde.sdk.client.SeShapeFilter; import com.esri.sde.sdk.client.SeSqlConstruct; import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.geom.Point; +import com.vividsolutions.jts.geom.Polygon; import com.vividsolutions.jts.io.WKTReader; @@ -174,7 +176,7 @@ }else{ wkt = intersectsStmt.substring(intersectsStmt.indexOf("\""), intersectsStmt.lastIndexOf("\"")).replace("\"", "").trim(); } - g = new WKTReader().read(wkt); + g = new WKTReader().read(wkt.toUpperCase()); if (geometryColumnName == null){ geometryColumnName = "SHAPE"; // TODO dynamisch aus Intersects auslesen. @@ -213,9 +215,16 @@ SDEPoint[] lPoints = new ArcSDEUtils().createPoints(g); - shape.generatePolygon(lPoints.length, 1, null, lPoints); + int searchMode = SeFilter.METHOD_AI; + if (g instanceof Polygon){ + shape.generatePolygon(lPoints.length, 1, null, lPoints); + }else if (g instanceof Point){ + shape.generatePoint(1, lPoints); + searchMode = SeFilter.METHOD_PC; + } + SeShapeFilter filter = new SeShapeFilter(pLayername[0], - pSpatialColumnName, shape, SeFilter.METHOD_AI); + pSpatialColumnName, shape,searchMode); filters = new SeShapeFilter[1]; filters[0] = filter; }