Revision 47606 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.sqlite/org.gvsig.sqlite.provider/src/main/java/org/gvsig/sqlite/dal/expressionbuilderformatter/ST_Intersects.java
ST_Intersects.java | ||
---|---|---|
16 | 16 |
import org.gvsig.fmap.dal.SQLBuilder; |
17 | 17 |
import static org.gvsig.fmap.dal.SQLBuilder.PROP_FEATURE_TYPE; |
18 | 18 |
import static org.gvsig.fmap.dal.SQLBuilder.PROP_QUERY; |
19 |
import static org.gvsig.fmap.dal.SQLBuilder.PROP_TABLE; |
|
19 | 20 |
import static org.gvsig.fmap.dal.SQLBuilder.PROP_TABLENAME; |
21 |
import org.gvsig.fmap.dal.SQLBuilder.TableNameBuilder; |
|
20 | 22 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
21 | 23 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
22 | 24 |
import org.gvsig.fmap.dal.feature.FeatureType; |
23 | 25 |
import org.gvsig.fmap.geom.Geometry; |
26 |
import org.gvsig.fmap.geom.GeometryUtils; |
|
24 | 27 |
import org.gvsig.sqlite.dal.geopackage.GeopackageUtils; |
25 | 28 |
import org.gvsig.sqlite.dal.geopackage.index.GeopackageIndex; |
26 | 29 |
|
... | ... | |
73 | 76 |
} |
74 | 77 |
String tableName = (String) column.getProperty(PROP_TABLENAME); |
75 | 78 |
if( StringUtils.isBlank(tableName) ) { |
76 |
return null; |
|
79 |
TableNameBuilder tableNameBuilder = (TableNameBuilder) column.getProperty(PROP_TABLE); |
|
80 |
if(tableNameBuilder == null){ |
|
81 |
return null; |
|
82 |
} |
|
83 |
tableName = tableNameBuilder.getName(); |
|
77 | 84 |
} |
78 | 85 |
FeatureType featureType = (FeatureType) column.getProperty(PROP_FEATURE_TYPE); |
79 | 86 |
if( featureType==null ) { |
... | ... | |
109 | 116 |
MutableSymbolTable symbolTable = expressionManager.createSymbolTable(); |
110 | 117 |
// Le pasamos el optimize para que resuelva las expresiones constantes |
111 | 118 |
// a ver si es una geometria. |
119 |
geomcode.link(symbolTable); |
|
112 | 120 |
geomcode = expressionManager.optimize(symbolTable, geomcode); |
113 | 121 |
} catch(Exception ex) { |
114 | 122 |
return null; |
... | ... | |
118 | 126 |
if( go instanceof Geometry ) { |
119 | 127 |
String filter = index.getBBoxIntersectsFilter(tableName, attrid.getName(), attrgeom.getName(), (Geometry)go); |
120 | 128 |
return filter; |
129 |
} else if (go instanceof byte[]) { |
|
130 |
try { |
|
131 |
Geometry geom = GeometryUtils.createFrom(go); |
|
132 |
String filter = index.getBBoxIntersectsFilter(tableName, attrid.getName(), attrgeom.getName(), geom); |
|
133 |
return filter; |
|
134 |
} catch(Exception ex) { |
|
135 |
|
|
136 |
} |
|
121 | 137 |
} |
122 | 138 |
} |
123 | 139 |
String filter = index.getBBoxIntersectsFilter( |
Also available in: Unified diff