Revision 41612
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.api/src/main/java/org/gvsig/fmap/geom/aggregate/MultiPolygon.java | ||
---|---|---|
17 | 17 |
|
18 | 18 |
public MultiPoint toPoints() throws GeometryException; |
19 | 19 |
|
20 |
public MultiCurve toLines() throws GeometryException;
|
|
20 |
public MultiLine toLines() throws GeometryException;
|
|
21 | 21 |
|
22 |
public MultiSurface toPolygons() throws GeometryException;
|
|
22 |
public MultiPolygon toPolygons() throws GeometryException;
|
|
23 | 23 |
|
24 | 24 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.generalpath/src/main/java/org/gvsig/fmap/geom/generalpath/aggregate/MultiSurface2D.java | ||
---|---|---|
38 | 38 |
import org.gvsig.fmap.geom.GeometryException; |
39 | 39 |
import org.gvsig.fmap.geom.GeometryLocator; |
40 | 40 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
41 |
import org.gvsig.fmap.geom.aggregate.MultiLine; |
|
41 | 42 |
import org.gvsig.fmap.geom.aggregate.MultiPoint; |
42 | 43 |
import org.gvsig.fmap.geom.aggregate.MultiPolygon; |
43 | 44 |
import org.gvsig.fmap.geom.aggregate.MultiSurface; |
... | ... | |
51 | 52 |
import org.gvsig.fmap.geom.type.GeometryType; |
52 | 53 |
import org.gvsig.fmap.geom.generalpath.util.Converter; |
53 | 54 |
import org.gvsig.fmap.geom.primitive.Curve; |
55 |
import org.gvsig.fmap.geom.primitive.Polygon; |
|
54 | 56 |
|
55 | 57 |
/** |
56 | 58 |
* @author Jorge Piera Llodr? (jorge.piera@iver.es) |
... | ... | |
223 | 225 |
return gf.createLinearRing(ls.getCoordinateSequence()); |
224 | 226 |
} |
225 | 227 |
|
226 |
public MultiSurface toPolygons() throws GeometryException {
|
|
228 |
public MultiPolygon toPolygons() throws GeometryException {
|
|
227 | 229 |
return this; |
228 | 230 |
} |
229 | 231 |
|
... | ... | |
247 | 249 |
return multipoint; |
248 | 250 |
} |
249 | 251 |
|
250 |
public MultiCurve toLines() throws GeometryException {
|
|
252 |
public MultiLine toLines() throws GeometryException {
|
|
251 | 253 |
if( this.getPrimitivesNumber() < 1 ) { |
252 | 254 |
return null; |
253 | 255 |
} |
254 | 256 |
DefaultGeometryManager manager = (DefaultGeometryManager) GeometryLocator.getGeometryManager(); |
255 |
MultiCurve multi = manager.createMultiCurve(this.getGeometryType().getSubType());
|
|
257 |
MultiLine multi = manager.createMultiLine(this.getGeometryType().getSubType());
|
|
256 | 258 |
multi.ensureCapacity(this.getPrimitivesNumber()); |
257 | 259 |
for( int i=0; i<this.getPrimitivesNumber(); i++ ) { |
258 |
Surface surface = (Surface)(this.getPrimitiveAt(i)); |
|
259 |
Curve curve = manager.createCurve(this.getGeometryType().getSubType()); |
|
260 |
curve.ensureCapacity(surface.getNumVertices()); |
|
261 |
for( int n=0; n<surface.getNumVertices(); n++ ) { |
|
262 |
curve.addVertex(curve.getVertex(n)); |
|
260 |
Polygon polygon = (Polygon)(this.getPrimitiveAt(i)); |
|
261 |
MultiLine lines = polygon.toLines(); |
|
262 |
for( int n=0; n<lines.getPrimitivesNumber(); n++ ) { |
|
263 |
multi.addPrimitive(lines.getPrimitiveAt(n)); |
|
263 | 264 |
} |
264 |
multi.addPrimitive(curve); |
|
265 | 265 |
} |
266 | 266 |
return multi; |
267 | 267 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.generalpath/src/main/java/org/gvsig/fmap/geom/generalpath/primitive/surface/polygon/Polygon2D.java | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
package org.gvsig.fmap.geom.generalpath.primitive.surface.polygon; |
25 | 25 |
|
26 |
import org.gvsig.fmap.geom.generalpath.primitive.surface.OrientableSurface2D; |
|
27 |
import java.awt.geom.Rectangle2D; |
|
28 |
import java.util.ArrayList; |
|
29 |
import java.util.List; |
|
30 |
|
|
26 |
import com.vividsolutions.jts.geom.Coordinate; |
|
31 | 27 |
import com.vividsolutions.jts.geom.GeometryFactory; |
32 | 28 |
import com.vividsolutions.jts.geom.LineString; |
33 | 29 |
import com.vividsolutions.jts.geom.LinearRing; |
34 | 30 |
import com.vividsolutions.jts.geom.PrecisionModel; |
35 | 31 |
import com.vividsolutions.jts.geom.TopologyException; |
32 |
import com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory; |
|
36 | 33 |
import com.vividsolutions.jts.precision.GeometryPrecisionReducer; |
37 |
|
|
34 |
import java.awt.geom.Rectangle2D; |
|
35 |
import java.util.ArrayList; |
|
36 |
import java.util.List; |
|
38 | 37 |
import org.cresques.cts.IProjection; |
39 |
|
|
40 | 38 |
import org.gvsig.fmap.geom.Geometry; |
41 | 39 |
import org.gvsig.fmap.geom.GeometryException; |
42 | 40 |
import org.gvsig.fmap.geom.GeometryLocator; |
41 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
|
43 | 42 |
import org.gvsig.fmap.geom.aggregate.MultiLine; |
44 | 43 |
import org.gvsig.fmap.geom.aggregate.MultiPoint; |
45 | 44 |
import org.gvsig.fmap.geom.aggregate.MultiPolygon; |
46 | 45 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
47 | 46 |
import org.gvsig.fmap.geom.generalpath.DefaultGeometryManager; |
47 |
import org.gvsig.fmap.geom.generalpath.gputils.FShape; |
|
48 |
import org.gvsig.fmap.geom.generalpath.primitive.surface.OrientableSurface2D; |
|
49 |
import org.gvsig.fmap.geom.generalpath.util.Converter; |
|
48 | 50 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
49 | 51 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
50 |
import org.gvsig.fmap.geom.generalpath.gputils.FShape; |
|
51 | 52 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
52 | 53 |
import org.gvsig.fmap.geom.primitive.Polygon; |
54 |
import org.gvsig.fmap.geom.primitive.Primitive; |
|
53 | 55 |
import org.gvsig.fmap.geom.type.GeometryType; |
54 |
import org.gvsig.fmap.geom.generalpath.util.Converter; |
|
55 | 56 |
|
56 | 57 |
/** |
57 | 58 |
* Pol�gono 2D. |
... | ... | |
234 | 235 |
} |
235 | 236 |
|
236 | 237 |
public MultiLine toLines() throws GeometryException { |
237 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
|
238 |
GeometryFactory fact = new GeometryFactory(); |
|
239 |
Coordinate[] coordinates = this.toJTS().getCoordinates(); |
|
240 |
LineString jts_line = fact.createLineString(coordinates); |
|
241 |
|
|
242 |
DefaultGeometryManager manager = (DefaultGeometryManager) GeometryLocator.getGeometryManager(); |
|
243 |
Geometry line = manager.createFrom(jts_line); |
|
244 |
MultiCurve multi = manager.createMultiCurve(this.getGeometryType().getSubType()); |
|
245 |
multi.addPrimitive((Primitive) line); |
|
246 |
return (MultiLine) multi; |
|
238 | 247 |
} |
239 | 248 |
|
240 | 249 |
public MultiPolygon toPolygons() throws GeometryException { |
Also available in: Unified diff