Revision 25590 branches/v2_0_0_prep/libraries/libFMap_dalindex/src/org/gvsig/fmap/dal/index/spatial/spatialindex/SPTLIBRTree.java

View differences:

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