Revision 42464 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/DefaultEnvelope.java
DefaultEnvelope.java | ||
---|---|---|
24 | 24 |
|
25 | 25 |
package org.gvsig.fmap.geom.jts.primitive; |
26 | 26 |
|
27 |
import java.text.MessageFormat;
|
|
27 |
import java.util.ArrayList;
|
|
28 | 28 |
|
29 |
import com.vividsolutions.jts.geom.Coordinate; |
|
30 |
|
|
29 | 31 |
import org.slf4j.Logger; |
30 | 32 |
import org.slf4j.LoggerFactory; |
31 | 33 |
|
... | ... | |
35 | 37 |
import org.gvsig.fmap.geom.GeometryLocator; |
36 | 38 |
import org.gvsig.fmap.geom.GeometryManager; |
37 | 39 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
40 |
import org.gvsig.fmap.geom.jts.GeometryJTS; |
|
41 |
import org.gvsig.fmap.geom.jts.util.ArrayListCoordinateSequence; |
|
42 |
import org.gvsig.fmap.geom.jts.util.JTSUtils; |
|
38 | 43 |
import org.gvsig.fmap.geom.primitive.Envelope; |
39 | 44 |
import org.gvsig.fmap.geom.primitive.EnvelopeNotInitializedException; |
40 | 45 |
import org.gvsig.fmap.geom.primitive.Point; |
... | ... | |
70 | 75 |
|
71 | 76 |
protected boolean isEmpty; |
72 | 77 |
|
78 |
private com.vividsolutions.jts.geom.Polygon jtsGeom = null; |
|
79 |
|
|
73 | 80 |
protected static GeometryManager manager = GeometryLocator.getGeometryManager(); |
74 | 81 |
|
75 | 82 |
public DefaultEnvelope(){ |
... | ... | |
278 | 285 |
if (max != null){ |
279 | 286 |
isEmpty = false; |
280 | 287 |
} |
288 |
jtsGeom = null; |
|
281 | 289 |
} |
282 | 290 |
|
283 | 291 |
/* (non-Javadoc) |
... | ... | |
288 | 296 |
if (min != null){ |
289 | 297 |
isEmpty = false; |
290 | 298 |
} |
299 |
jtsGeom = null; |
|
291 | 300 |
} |
292 | 301 |
|
293 | 302 |
public static void registerPersistent() { |
... | ... | |
338 | 347 |
isEmpty = true; |
339 | 348 |
} |
340 | 349 |
|
350 |
/* (non-Javadoc) |
|
351 |
* @see org.gvsig.fmap.geom.primitive.Envelope#intersects(org.gvsig.fmap.geom.Geometry) |
|
352 |
*/ |
|
353 |
@Override |
|
354 |
public boolean intersects(Geometry geometry) { |
|
355 |
if(geometry instanceof GeometryJTS){ |
|
356 |
return getJTS().intersects(((GeometryJTS)geometry).getJTS()); |
|
357 |
} |
|
358 |
return false; |
|
359 |
} |
|
360 |
|
|
361 |
|
|
362 |
private com.vividsolutions.jts.geom.Geometry getJTS() { |
|
363 |
if (jtsGeom == null) { |
|
364 |
ArrayListCoordinateSequence coordinates = new ArrayListCoordinateSequence(new ArrayList<Coordinate>()); |
|
365 |
coordinates.add(new com.vividsolutions.jts.geom.Coordinate(min.getX(), min.getY())); |
|
366 |
coordinates.add(new com.vividsolutions.jts.geom.Coordinate(getMaximum(0), getMinimum(1))); |
|
367 |
coordinates.add(new com.vividsolutions.jts.geom.Coordinate(max.getX(), max.getY())); |
|
368 |
coordinates.add(new com.vividsolutions.jts.geom.Coordinate(getMinimum(0), getMaximum(1))); |
|
369 |
coordinates.add(new com.vividsolutions.jts.geom.Coordinate(min.getX(), min.getY())); |
|
370 |
jtsGeom = JTSUtils.createJTSPolygon(coordinates); |
|
371 |
} |
|
372 |
return jtsGeom; |
|
373 |
} |
|
341 | 374 |
} |
Also available in: Unified diff