Revision 25590 branches/v2_0_0_prep/libraries/libFMap_dalindex/src/org/gvsig/fmap/dal/index/spatial/spatialindex/SPTLIBRTree.java
SPTLIBRTree.java | ||
---|---|---|
11 | 11 |
import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices; |
12 | 12 |
import org.gvsig.fmap.dal.feature.spi.index.AbstractFeatureIndexProvider; |
13 | 13 |
import org.gvsig.fmap.dal.feature.spi.index.FeatureIndexProvider; |
14 |
import org.gvsig.fmap.geom.Geometry; |
|
14 | 15 |
import org.gvsig.fmap.geom.primitive.Envelope; |
15 | 16 |
import org.gvsig.fmap.geom.primitive.Point2D; |
16 | 17 |
|
... | ... | |
199 | 200 |
} |
200 | 201 |
|
201 | 202 |
public void insert(Object value, FeatureReferenceProviderServices fref) { |
202 |
rtree.insertData(null, createRegion((Envelope) value), ((Integer) fref |
|
203 |
Envelope env = null; |
|
204 |
if (value instanceof Envelope) { |
|
205 |
env = (Envelope) value; |
|
206 |
} else if (value instanceof Geometry) { |
|
207 |
env = ((Geometry) value).getEnvelope(); |
|
208 |
} |
|
209 |
rtree.insertData(null, createRegion(env), ((Integer) fref |
|
203 | 210 |
.getOID()).intValue()); |
204 | 211 |
} |
205 |
|
|
212 |
|
|
206 | 213 |
public List match(Object value) throws FeatureIndexException { |
207 | 214 |
List solution = null; |
208 | 215 |
Region region = createRegion((Envelope) value); |
... | ... | |
221 | 228 |
return this.findNNearest(count, (Envelope) value); |
222 | 229 |
} else if (value instanceof Point2D) { |
223 | 230 |
return this.findNNearest(count, (Point2D) value); |
231 |
} else if (value instanceof Geometry) { |
|
232 |
return this.findNNearest(count, ((Geometry) value).getEnvelope()); |
|
224 | 233 |
} else { |
225 | 234 |
throw new IllegalArgumentException ("value must be either an Envelope or either a Point2D"); |
226 | 235 |
} |
Also available in: Unified diff