Revision 39365
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/DummyPoint2D.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2008 {{Company}} {{Task}} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom; |
|
29 |
|
|
30 |
import org.gvsig.fmap.geom.primitive.Point; |
|
31 |
import org.gvsig.fmap.geom.primitive.impl.Point2D; |
|
32 |
import org.gvsig.fmap.geom.type.GeometryType; |
|
33 |
|
|
34 |
|
|
35 |
public class DummyPoint2D extends Point2D implements Point { |
|
36 |
|
|
37 |
/** |
|
38 |
* @param geometryType |
|
39 |
*/ |
|
40 |
public DummyPoint2D(GeometryType geometryType) { |
|
41 |
super(geometryType); |
|
42 |
// TODO Auto-generated constructor stub |
|
43 |
} |
|
44 |
|
|
45 |
private static final long serialVersionUID = 4449552637882072964L; |
|
46 |
|
|
47 |
|
|
48 |
|
|
49 |
} |
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/tojts/toJTSTest.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {Iver T.I.} {Task} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom.operation.tojts; |
|
29 |
|
|
30 |
import org.slf4j.Logger; |
|
31 |
import org.slf4j.LoggerFactory; |
|
32 |
|
|
33 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
34 |
import org.gvsig.fmap.geom.Geometry.TYPES; |
|
35 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
36 |
import org.gvsig.fmap.geom.GeometryManager; |
|
37 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
|
38 |
import org.gvsig.fmap.geom.aggregate.MultiPoint; |
|
39 |
import org.gvsig.fmap.geom.aggregate.MultiSurface; |
|
40 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
41 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
42 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
43 |
import org.gvsig.fmap.geom.primitive.Curve; |
|
44 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
|
45 |
import org.gvsig.fmap.geom.primitive.Point; |
|
46 |
import org.gvsig.fmap.geom.primitive.Surface; |
|
47 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
|
48 |
|
|
49 |
/** |
|
50 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a> |
|
51 |
*/ |
|
52 |
public class toJTSTest extends AbstractLibraryAutoInitTestCase { |
|
53 |
final static private Logger logger = LoggerFactory.getLogger("org.gvsig"); |
|
54 |
private GeometryManager manager; |
|
55 |
|
|
56 |
protected void doSetUp() throws Exception { |
|
57 |
manager = GeometryLocator.getGeometryManager(); |
|
58 |
manager.registerGeometryOperation(ToJTS.NAME, new Point2DToJTS(), TYPES.POINT, SUBTYPES.GEOM2D); |
|
59 |
manager.registerGeometryOperation(ToJTS.NAME, new Curve2DToJTS(), TYPES.CURVE, SUBTYPES.GEOM2D); |
|
60 |
manager.registerGeometryOperation(ToJTS.NAME, new Curve2DToJTS(), TYPES.ARC, SUBTYPES.GEOM2D); |
|
61 |
|
|
62 |
manager.registerGeometryOperation(ToJTS.NAME, new Surface2DToJTS(), TYPES.SURFACE, SUBTYPES.GEOM2D); |
|
63 |
manager.registerGeometryOperation(ToJTS.NAME, new Surface2DToJTS(), TYPES.CIRCLE, SUBTYPES.GEOM2D); |
|
64 |
manager.registerGeometryOperation(ToJTS.NAME, new Surface2DToJTS(), TYPES.ELLIPSE, SUBTYPES.GEOM2D); |
|
65 |
|
|
66 |
manager.registerGeometryOperation(ToJTS.NAME, new MultiPointToJTS(), TYPES.MULTIPOINT, SUBTYPES.GEOM2D); |
|
67 |
|
|
68 |
manager.registerGeometryOperation(ToJTS.NAME, new MultiCurveToJTS(), TYPES.MULTICURVE, SUBTYPES.GEOM2D); |
|
69 |
|
|
70 |
manager.registerGeometryOperation(ToJTS.NAME, new MultiSurfaceToJTS(), TYPES.MULTISURFACE, SUBTYPES.GEOM2D); |
|
71 |
} |
|
72 |
|
|
73 |
public void testPoint() throws CreateGeometryException, GeometryOperationNotSupportedException, GeometryOperationException{ |
|
74 |
Point point = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D); |
|
75 |
point.setCoordinateAt(0, 1.0); |
|
76 |
point.setCoordinateAt(1, 2.0); |
|
77 |
|
|
78 |
JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1); |
|
79 |
|
|
80 |
Object obj = point.invokeOperation(ToJTS.CODE, ctx); |
|
81 |
assertNotNull(obj); |
|
82 |
assertTrue(obj instanceof com.vividsolutions.jts.geom.Point); |
|
83 |
assertEquals(1.0, ((com.vividsolutions.jts.geom.Point)obj).getX(), 0.0); |
|
84 |
assertEquals(2.0, ((com.vividsolutions.jts.geom.Point)obj).getY(), 0.0); |
|
85 |
} |
|
86 |
|
|
87 |
public void testMultiPoint() throws GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{ |
|
88 |
Point point1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM3D); |
|
89 |
point1.setCoordinateAt(0, 1.0); |
|
90 |
point1.setCoordinateAt(1, 2.0); |
|
91 |
point1.setCoordinateAt(2, 3.0); |
|
92 |
|
|
93 |
Point point2 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM3D); |
|
94 |
point2.setCoordinateAt(0, 4.0); |
|
95 |
point2.setCoordinateAt(1, 5.0); |
|
96 |
point2.setCoordinateAt(2, 6.0); |
|
97 |
|
|
98 |
MultiPoint multiPoint = (MultiPoint)manager.create(TYPES.MULTIPOINT, SUBTYPES.GEOM2D); |
|
99 |
multiPoint.addPoint(point1); |
|
100 |
multiPoint.addPoint(point2); |
|
101 |
|
|
102 |
JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1); |
|
103 |
|
|
104 |
Object obj = multiPoint.invokeOperation(ToJTS.CODE, ctx); |
|
105 |
assertNotNull(obj); |
|
106 |
assertTrue(obj instanceof com.vividsolutions.jts.geom.MultiPoint); |
|
107 |
com.vividsolutions.jts.geom.MultiPoint gtMultiPoint = (com.vividsolutions.jts.geom.MultiPoint)obj; |
|
108 |
assertEquals(2, (int)gtMultiPoint.getNumGeometries()); |
|
109 |
} |
|
110 |
|
|
111 |
public void testLineString() throws GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{ |
|
112 |
Curve lineString = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D); |
|
113 |
GeneralPathX generalPathX = new GeneralPathX(); |
|
114 |
generalPathX.moveTo(0, 0); |
|
115 |
generalPathX.lineTo(1, 1); |
|
116 |
generalPathX.lineTo(2, 1); |
|
117 |
lineString.setGeneralPath(generalPathX); |
|
118 |
|
|
119 |
JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1); |
|
120 |
|
|
121 |
Object obj = lineString.invokeOperation(ToJTS.CODE, ctx); |
|
122 |
assertNotNull(obj); |
|
123 |
assertTrue(obj instanceof com.vividsolutions.jts.geom.LineString); |
|
124 |
com.vividsolutions.jts.geom.LineString gtLineString = (com.vividsolutions.jts.geom.LineString)obj; |
|
125 |
assertEquals(0, gtLineString.getCoordinates()[0].x, 0.0); |
|
126 |
assertEquals(0, gtLineString.getCoordinates()[0].y, 0.0); |
|
127 |
assertEquals(0, gtLineString.getCoordinates()[1].x, 1.0); |
|
128 |
assertEquals(0, gtLineString.getCoordinates()[1].y, 1.0); |
|
129 |
assertEquals(0, gtLineString.getCoordinates()[2].x, 2.0); |
|
130 |
assertEquals(0, gtLineString.getCoordinates()[2].y, 2.0); |
|
131 |
} |
|
132 |
|
|
133 |
public void testPolygon() throws CreateGeometryException, GeometryOperationNotSupportedException, GeometryOperationException{ |
|
134 |
Surface polygon = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D); |
|
135 |
GeneralPathX generalPathX = new GeneralPathX(); |
|
136 |
generalPathX.moveTo(0, 0); |
|
137 |
generalPathX.lineTo(1, 1); |
|
138 |
generalPathX.lineTo(2, 1); |
|
139 |
polygon.setGeneralPath(generalPathX); |
|
140 |
|
|
141 |
JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1); |
|
142 |
|
|
143 |
Object obj = polygon.invokeOperation(ToJTS.CODE, ctx); |
|
144 |
assertNotNull(obj); |
|
145 |
assertTrue(obj instanceof com.vividsolutions.jts.geom.Polygon); |
|
146 |
com.vividsolutions.jts.geom.Polygon gtPolygon = (com.vividsolutions.jts.geom.Polygon)obj; |
|
147 |
assertEquals(0, gtPolygon.getCoordinates()[0].x, 0.0); |
|
148 |
assertEquals(0, gtPolygon.getCoordinates()[0].y, 0.0); |
|
149 |
assertEquals(0, gtPolygon.getCoordinates()[1].x, 1.0); |
|
150 |
assertEquals(0, gtPolygon.getCoordinates()[1].y, 1.0); |
|
151 |
assertEquals(0, gtPolygon.getCoordinates()[2].x, 2.0); |
|
152 |
assertEquals(0, gtPolygon.getCoordinates()[2].y, 2.0); |
|
153 |
} |
|
154 |
|
|
155 |
public void testMultiLineString() throws CreateGeometryException, GeometryOperationNotSupportedException, GeometryOperationException{ |
|
156 |
Curve curve1 = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D); |
|
157 |
GeneralPathX generalPathX1 = new GeneralPathX(); |
|
158 |
generalPathX1.moveTo(0, 0); |
|
159 |
generalPathX1.lineTo(1, 1); |
|
160 |
generalPathX1.lineTo(2, 1); |
|
161 |
curve1.setGeneralPath(generalPathX1); |
|
162 |
|
|
163 |
Curve curve2 = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D); |
|
164 |
GeneralPathX generalPathX2 = new GeneralPathX(); |
|
165 |
generalPathX2.moveTo(0, 0); |
|
166 |
generalPathX2.lineTo(1, 1); |
|
167 |
generalPathX2.lineTo(2, 1); |
|
168 |
curve2.setGeneralPath(generalPathX2); |
|
169 |
|
|
170 |
MultiCurve multiCurve = (MultiCurve)manager.create(TYPES.MULTICURVE, SUBTYPES.GEOM2D); |
|
171 |
multiCurve.addCurve(curve1); |
|
172 |
multiCurve.addCurve(curve2); |
|
173 |
|
|
174 |
JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1); |
|
175 |
|
|
176 |
Object obj = multiCurve.invokeOperation(ToJTS.CODE, ctx); |
|
177 |
assertNotNull(obj); |
|
178 |
assertTrue(obj instanceof com.vividsolutions.jts.geom.MultiLineString); |
|
179 |
com.vividsolutions.jts.geom.MultiLineString gtMultiLineString = (com.vividsolutions.jts.geom.MultiLineString)obj; |
|
180 |
assertEquals(2, (int)gtMultiLineString.getNumGeometries()); |
|
181 |
} |
|
182 |
|
|
183 |
public void testMultiPlygon() throws CreateGeometryException, GeometryOperationNotSupportedException, GeometryOperationException{ |
|
184 |
Surface surface1 = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D); |
|
185 |
GeneralPathX generalPathX1 = new GeneralPathX(); |
|
186 |
generalPathX1.moveTo(0, 0); |
|
187 |
generalPathX1.lineTo(1, 1); |
|
188 |
generalPathX1.lineTo(2, 1); |
|
189 |
surface1.setGeneralPath(generalPathX1); |
|
190 |
|
|
191 |
Surface surface2 = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D); |
|
192 |
GeneralPathX generalPathX2 = new GeneralPathX(); |
|
193 |
generalPathX2.moveTo(0, 0); |
|
194 |
generalPathX2.lineTo(1, 1); |
|
195 |
generalPathX2.lineTo(2, 1); |
|
196 |
surface2.setGeneralPath(generalPathX2); |
|
197 |
|
|
198 |
MultiSurface multiPolygon = (MultiSurface)manager.create(TYPES.MULTISURFACE, SUBTYPES.GEOM2D); |
|
199 |
multiPolygon.addSurface(surface1); |
|
200 |
multiPolygon.addSurface(surface2); |
|
201 |
|
|
202 |
JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1); |
|
203 |
|
|
204 |
Object obj = multiPolygon.invokeOperation(ToJTS.CODE, ctx); |
|
205 |
assertNotNull(obj); |
|
206 |
assertTrue(obj instanceof com.vividsolutions.jts.geom.MultiPolygon); |
|
207 |
com.vividsolutions.jts.geom.MultiPolygon gtMultiPolygon = (com.vividsolutions.jts.geom.MultiPolygon)obj; |
|
208 |
assertEquals(2, (int)gtMultiPolygon.getNumGeometries()); |
|
209 |
assertEquals(0, gtMultiPolygon.getCoordinates()[0].x, 0.0); |
|
210 |
assertEquals(0, gtMultiPolygon.getCoordinates()[0].x, 0.0); |
|
211 |
} |
|
212 |
|
|
213 |
} |
|
214 |
|
|
0 | 215 |
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintMultiPoint.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {Iver T.I.} {Task} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom.operation.println; |
|
29 |
|
|
30 |
import org.gvsig.fmap.geom.Geometry; |
|
31 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
32 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
33 |
import org.gvsig.fmap.geom.Geometry.TYPES; |
|
34 |
import org.gvsig.fmap.geom.aggregate.MultiPoint; |
|
35 |
import org.gvsig.fmap.geom.operation.GeometryOperation; |
|
36 |
import org.gvsig.fmap.geom.operation.GeometryOperationContext; |
|
37 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
38 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
39 |
import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException; |
|
40 |
import org.gvsig.fmap.geom.type.GeometryTypeNotValidException; |
|
41 |
import org.gvsig.tools.locator.LocatorException; |
|
42 |
|
|
43 |
/** |
|
44 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a> |
|
45 |
*/ |
|
46 |
public class PrintMultiPoint extends GeometryOperation { |
|
47 |
|
|
48 |
public PrintMultiPoint() { |
|
49 |
super(); |
|
50 |
// TODO Auto-generated constructor stub |
|
51 |
} |
|
52 |
|
|
53 |
/* (non-Javadoc) |
|
54 |
* @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex() |
|
55 |
*/ |
|
56 |
public int getOperationIndex() { |
|
57 |
try { |
|
58 |
return GeometryLocator.getGeometryManager() |
|
59 |
.registerGeometryOperation("println", new PrintPoint(), TYPES.MULTIPOINT, SUBTYPES.GEOM2D); |
|
60 |
} catch (LocatorException e) { |
|
61 |
// TODO Auto-generated catch block |
|
62 |
e.printStackTrace(); |
|
63 |
} catch (GeometryTypeNotSupportedException e) { |
|
64 |
// TODO Auto-generated catch block |
|
65 |
e.printStackTrace(); |
|
66 |
} catch (GeometryTypeNotValidException e) { |
|
67 |
// TODO Auto-generated catch block |
|
68 |
e.printStackTrace(); |
|
69 |
} |
|
70 |
return -1; |
|
71 |
} |
|
72 |
|
|
73 |
/* (non-Javadoc) |
|
74 |
* @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext) |
|
75 |
*/ |
|
76 |
public Object invoke(Geometry geom, GeometryOperationContext ctx) |
|
77 |
throws GeometryOperationException { |
|
78 |
MultiPoint multiPoint = (MultiPoint)geom; |
|
79 |
System.out.println("MultiPoint"); |
|
80 |
for (int i=0 ; i<multiPoint.getPrimitivesNumber() ; i++){ |
|
81 |
try { |
|
82 |
System.out.print(" - "); |
|
83 |
multiPoint.getPointAt(i).invokeOperation(getOperationIndex(), ctx); |
|
84 |
} catch (GeometryOperationNotSupportedException e) { |
|
85 |
// TODO Auto-generated catch block |
|
86 |
e.printStackTrace(); |
|
87 |
} |
|
88 |
} |
|
89 |
return "println-multipoint"; |
|
90 |
} |
|
91 |
|
|
92 |
|
|
93 |
} |
|
94 |
|
|
95 |
|
|
96 |
|
|
0 | 97 |
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintPoint.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {Iver T.I.} {Task} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom.operation.println; |
|
29 |
|
|
30 |
import org.gvsig.fmap.geom.Geometry; |
|
31 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
32 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
33 |
import org.gvsig.fmap.geom.Geometry.TYPES; |
|
34 |
import org.gvsig.fmap.geom.operation.GeometryOperation; |
|
35 |
import org.gvsig.fmap.geom.operation.GeometryOperationContext; |
|
36 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
37 |
import org.gvsig.fmap.geom.primitive.Point; |
|
38 |
import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException; |
|
39 |
import org.gvsig.fmap.geom.type.GeometryTypeNotValidException; |
|
40 |
import org.gvsig.tools.locator.LocatorException; |
|
41 |
|
|
42 |
/** |
|
43 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a> |
|
44 |
*/ |
|
45 |
public class PrintPoint extends GeometryOperation { |
|
46 |
|
|
47 |
|
|
48 |
/* (non-Javadoc) |
|
49 |
* @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex() |
|
50 |
*/ |
|
51 |
public int getOperationIndex() { |
|
52 |
try { |
|
53 |
return GeometryLocator.getGeometryManager() |
|
54 |
.registerGeometryOperation("println", new PrintPoint(), TYPES.POINT, SUBTYPES.GEOM2D); |
|
55 |
} catch (LocatorException e) { |
|
56 |
// TODO Auto-generated catch block |
|
57 |
e.printStackTrace(); |
|
58 |
} catch (GeometryTypeNotSupportedException e) { |
|
59 |
// TODO Auto-generated catch block |
|
60 |
e.printStackTrace(); |
|
61 |
} catch (GeometryTypeNotValidException e) { |
|
62 |
// TODO Auto-generated catch block |
|
63 |
e.printStackTrace(); |
|
64 |
} |
|
65 |
return -1; |
|
66 |
} |
|
67 |
|
|
68 |
/* (non-Javadoc) |
|
69 |
* @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext) |
|
70 |
*/ |
|
71 |
public Object invoke(Geometry geom, GeometryOperationContext ctx) |
|
72 |
throws GeometryOperationException { |
|
73 |
Point point = (Point)geom; |
|
74 |
System.out.println("Point, X=" + point.getX() + " Y=" + point.getY()); |
|
75 |
return "println-point"; |
|
76 |
} |
|
77 |
|
|
78 |
} |
|
79 |
|
|
0 | 80 |
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintlnOperationTest.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {Iver T.I.} {Task} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom.operation.println; |
|
29 |
|
|
30 |
import org.slf4j.Logger; |
|
31 |
import org.slf4j.LoggerFactory; |
|
32 |
|
|
33 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
34 |
import org.gvsig.fmap.geom.Geometry.TYPES; |
|
35 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
36 |
import org.gvsig.fmap.geom.GeometryManager; |
|
37 |
import org.gvsig.fmap.geom.aggregate.MultiPoint; |
|
38 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
39 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
40 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
41 |
import org.gvsig.fmap.geom.primitive.Point; |
|
42 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
|
43 |
|
|
44 |
/** |
|
45 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a> |
|
46 |
*/ |
|
47 |
public class PrintlnOperationTest extends AbstractLibraryAutoInitTestCase { |
|
48 |
final static private Logger logger = LoggerFactory.getLogger("org.gvsig"); |
|
49 |
private GeometryManager manager; |
|
50 |
|
|
51 |
protected void doSetUp() throws Exception { |
|
52 |
manager = GeometryLocator.getGeometryManager(); |
|
53 |
manager.registerGeometryOperation("println", new PrintPoint(), TYPES.POINT, SUBTYPES.GEOM2D); |
|
54 |
manager.registerGeometryOperation("println", new PrintMultiPoint(), TYPES.MULTIPOINT, SUBTYPES.GEOM2D); |
|
55 |
} |
|
56 |
|
|
57 |
public void testPoint() throws InstantiationException, IllegalAccessException, GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{ |
|
58 |
Point point = (Point) manager.create(TYPES.POINT, SUBTYPES.GEOM2D); |
|
59 |
assertEquals((String)manager.invokeOperation("println", point, null), "println-point"); |
|
60 |
} |
|
61 |
|
|
62 |
public void testMultiPoint() throws InstantiationException, IllegalAccessException, GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{ |
|
63 |
Point point1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D); |
|
64 |
point1.setCoordinateAt(0, 1.0); |
|
65 |
point1.setCoordinateAt(1, 2.0); |
|
66 |
|
|
67 |
Point point2 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D); |
|
68 |
point2.setCoordinateAt(0, 4.0); |
|
69 |
point2.setCoordinateAt(1, 5.0); |
|
70 |
|
|
71 |
MultiPoint multiPoint = (MultiPoint)manager.create(TYPES.MULTIPOINT, SUBTYPES.GEOM2D); |
|
72 |
multiPoint.addPoint(point1); |
|
73 |
multiPoint.addPoint(point2); |
|
74 |
|
|
75 |
assertEquals((String)manager.invokeOperation("println", multiPoint, null), "println-multipoint"); |
|
76 |
assertEquals((String)manager.invokeOperation("println", point1, null), "println-point"); |
|
77 |
assertEquals((String)manager.invokeOperation("println", point2, null), "println-point"); |
|
78 |
|
|
79 |
assertEquals((String)point1.invokeOperation("println", null), "println-point"); |
|
80 |
|
|
81 |
} |
|
82 |
} |
|
83 |
|
|
84 |
|
|
85 |
|
|
0 | 86 |
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBTest.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {Iver T.I.} {Task} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom.operation.towkb; |
|
29 |
|
|
30 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
31 |
import org.gvsig.fmap.geom.Geometry.TYPES; |
|
32 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
33 |
import org.gvsig.fmap.geom.GeometryManager; |
|
34 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
35 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
36 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
37 |
import org.gvsig.fmap.geom.primitive.Point; |
|
38 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
|
39 |
|
|
40 |
/** |
|
41 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a> |
|
42 |
*/ |
|
43 |
public class WKBTest extends AbstractLibraryAutoInitTestCase { |
|
44 |
private GeometryManager manager; |
|
45 |
|
|
46 |
protected void doSetUp() throws Exception { |
|
47 |
manager = GeometryLocator.getGeometryManager(); |
|
48 |
} |
|
49 |
|
|
50 |
public void testPoint() throws InstantiationException, IllegalAccessException, GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{ |
|
51 |
Point point = (Point) manager.create(TYPES.POINT, SUBTYPES.GEOM2D); |
|
52 |
manager.invokeOperation("toWKB", point, null); |
|
53 |
} |
|
54 |
} |
|
55 |
|
|
0 | 56 |
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBNativeTest.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {Iver T.I.} {Task} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom.operation.towkb; |
|
29 |
|
|
30 |
import org.gvsig.fmap.geom.Geometry; |
|
31 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
32 |
import org.gvsig.fmap.geom.Geometry.TYPES; |
|
33 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
34 |
import org.gvsig.fmap.geom.GeometryManager; |
|
35 |
import org.gvsig.fmap.geom.operation.GeometryOperation; |
|
36 |
import org.gvsig.fmap.geom.operation.fromwkb.FromWKB; |
|
37 |
import org.gvsig.fmap.geom.operation.fromwkb.FromWKBGeometryOperationContext; |
|
38 |
import org.gvsig.fmap.geom.primitive.Curve; |
|
39 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
|
40 |
import org.gvsig.fmap.geom.primitive.Point; |
|
41 |
import org.gvsig.fmap.geom.primitive.Surface; |
|
42 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
|
43 |
|
|
44 |
/** |
|
45 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a> |
|
46 |
*/ |
|
47 |
public class WKBNativeTest extends AbstractLibraryAutoInitTestCase { |
|
48 |
private GeometryManager manager; |
|
49 |
private GeometryOperation toWkb2d; |
|
50 |
private GeometryOperation fromWkb2d; |
|
51 |
private FromWKBGeometryOperationContext fromWkbContext; |
|
52 |
|
|
53 |
protected void doSetUp() throws Exception { |
|
54 |
manager = GeometryLocator.getGeometryManager(); |
|
55 |
fromWkbContext = new FromWKBGeometryOperationContext(); |
|
56 |
} |
|
57 |
|
|
58 |
public void testPoint() throws Exception{ |
|
59 |
Point point = (Point) manager.create(TYPES.POINT, SUBTYPES.GEOM2D); |
|
60 |
point.setX(1); |
|
61 |
point.setY(2); |
|
62 |
toWkb2d = |
|
63 |
manager.getGeometryOperation(ToWKBNative.CODE, |
|
64 |
Geometry.TYPES.POINT, Geometry.SUBTYPES.GEOM2D); |
|
65 |
fromWkb2d = |
|
66 |
manager.getGeometryOperation(FromWKB.CODE, Geometry.TYPES.POINT, |
|
67 |
Geometry.SUBTYPES.GEOM2D); |
|
68 |
byte[] wkb = (byte[]) toWkb2d.invoke(point, |
|
69 |
null); |
|
70 |
fromWkbContext.setData(wkb); |
|
71 |
Geometry geom = (Geometry) fromWkb2d.invoke(null, |
|
72 |
fromWkbContext); |
|
73 |
|
|
74 |
assertEquals(point, geom); |
|
75 |
} |
|
76 |
|
|
77 |
public void testCurve() throws Exception { |
|
78 |
|
|
79 |
GeneralPathX gp = new GeneralPathX(); |
|
80 |
|
|
81 |
gp.moveTo(0.0, 0.0); |
|
82 |
gp.lineTo(1.0, 1.0); |
|
83 |
gp.lineTo(2.0, 2.0); |
|
84 |
gp.lineTo(3.0, 3.0); |
|
85 |
toWkb2d = |
|
86 |
manager.getGeometryOperation(ToWKBNative.CODE, |
|
87 |
Geometry.TYPES.CURVE, Geometry.SUBTYPES.GEOM2D); |
|
88 |
fromWkb2d = |
|
89 |
manager.getGeometryOperation(FromWKB.CODE, Geometry.TYPES.CURVE, |
|
90 |
Geometry.SUBTYPES.GEOM2D); |
|
91 |
Curve curve = (Curve) manager.create(TYPES.CURVE, SUBTYPES.GEOM2D); |
|
92 |
curve.setGeneralPath(gp); |
|
93 |
byte[] wkb = (byte[]) toWkb2d.invoke(curve, |
|
94 |
null); |
|
95 |
fromWkbContext.setData(wkb); |
|
96 |
Geometry geom = (Geometry) fromWkb2d.invoke(null, |
|
97 |
fromWkbContext); |
|
98 |
assertTrue(curve.equals(geom)); |
|
99 |
} |
|
100 |
|
|
101 |
public void testPolygon() throws Exception { |
|
102 |
GeneralPathX gp = new GeneralPathX(); |
|
103 |
gp.moveTo(1.0, 1.0); |
|
104 |
gp.lineTo(2.0, 2.0); |
|
105 |
gp.lineTo(3.0, 3.0); |
|
106 |
gp.lineTo(4.0, 4.0); |
|
107 |
gp.lineTo(5.0, 5.0); |
|
108 |
gp.closePath(); |
|
109 |
|
|
110 |
toWkb2d = |
|
111 |
manager.getGeometryOperation(ToWKBNative.CODE, |
|
112 |
Geometry.TYPES.SURFACE, Geometry.SUBTYPES.GEOM2D); |
|
113 |
fromWkb2d = |
|
114 |
manager.getGeometryOperation(FromWKB.CODE, Geometry.TYPES.SURFACE, |
|
115 |
Geometry.SUBTYPES.GEOM2D); |
|
116 |
|
|
117 |
Surface surface = manager.createSurface(gp, SUBTYPES.GEOM2D); |
|
118 |
|
|
119 |
byte[] wkb = (byte[]) toWkb2d.invoke(surface, null); |
|
120 |
fromWkbContext.setData(wkb); |
|
121 |
Geometry geom = (Geometry) fromWkb2d.invoke(null, fromWkbContext); |
|
122 |
assertTrue(surface.equals(geom)); |
|
123 |
} |
|
124 |
|
|
125 |
// public void testPolygonWithZ() throws Exception { |
|
126 |
// Surface surface = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM3D); |
|
127 |
// |
|
128 |
// Point point = manager.createPoint(1, 1, SUBTYPES.GEOM3D); |
|
129 |
// point.setCoordinateAt(DIMENSIONS.Z, 1); |
|
130 |
// surface.addMoveToVertex(point); |
|
131 |
// |
|
132 |
// point = manager.createPoint(2, 2, SUBTYPES.GEOM3D); |
|
133 |
// point.setCoordinateAt(DIMENSIONS.Z, 2); |
|
134 |
// surface.addVertex(point); |
|
135 |
// |
|
136 |
// point = manager.createPoint(3, 3, SUBTYPES.GEOM3D); |
|
137 |
// point.setCoordinateAt(DIMENSIONS.Z, 3); |
|
138 |
// surface.addVertex(point); |
|
139 |
// |
|
140 |
// point = manager.createPoint(4, 4, SUBTYPES.GEOM3D); |
|
141 |
// point.setCoordinateAt(DIMENSIONS.Z, 4); |
|
142 |
// surface.addVertex(point); |
|
143 |
// |
|
144 |
// point = manager.createPoint(5, 5, SUBTYPES.GEOM3D); |
|
145 |
// point.setCoordinateAt(DIMENSIONS.Z, 5); |
|
146 |
// surface.addVertex(point); |
|
147 |
// |
|
148 |
// surface.closePrimitive(); |
|
149 |
// |
|
150 |
// byte[] wkb = (byte[]) toWkb2d.invoke(surface, null); |
|
151 |
// fromWkbContext.setData(wkb); |
|
152 |
// Geometry geom = (Geometry) fromWkb2d.invoke(null, fromWkbContext); |
|
153 |
// assertTrue(surface.equals(geom)); |
|
154 |
// } |
|
155 |
} |
|
156 |
|
|
0 | 157 |
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/impl/DefaultGeometryManagerTest.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {} {{Task}} |
|
26 |
*/ |
|
27 |
package org.gvsig.fmap.geom.impl; |
|
28 |
|
|
29 |
import java.awt.Rectangle; |
|
30 |
import java.awt.Shape; |
|
31 |
import java.awt.geom.AffineTransform; |
|
32 |
import java.awt.geom.PathIterator; |
|
33 |
import java.awt.geom.Point2D; |
|
34 |
import java.awt.geom.Rectangle2D; |
|
35 |
|
|
36 |
import junit.framework.TestCase; |
|
37 |
|
|
38 |
import org.cresques.cts.ICoordTrans; |
|
39 |
|
|
40 |
import org.gvsig.fmap.geom.Geometry; |
|
41 |
import org.gvsig.fmap.geom.handler.Handler; |
|
42 |
import org.gvsig.fmap.geom.operation.GeometryOperationContext; |
|
43 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
44 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
45 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
46 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
|
47 |
import org.gvsig.fmap.geom.primitive.Point; |
|
48 |
import org.gvsig.fmap.geom.type.GeometryType; |
|
49 |
|
|
50 |
/** |
|
51 |
* Unit tests for the class {@link DefaultGeometryManager}. |
|
52 |
* |
|
53 |
* @author 2009- <a href="cordinyana@gvsig.org">C?sar Ordi?ana</a> - gvSIG team |
|
54 |
*/ |
|
55 |
public class DefaultGeometryManagerTest extends TestCase { |
|
56 |
|
|
57 |
private DefaultGeometryManager manager; |
|
58 |
|
|
59 |
protected void setUp() throws Exception { |
|
60 |
super.setUp(); |
|
61 |
} |
|
62 |
|
|
63 |
/** |
|
64 |
* Test method for |
|
65 |
* {@link org.gvsig.fmap.geom.impl.DefaultGeometryManager#registerGeometryType(int, int)} |
|
66 |
* and |
|
67 |
* {@link org.gvsig.fmap.geom.impl.DefaultGeometryManager#getGeometryType(int, int) |
|
68 |
* . |
|
69 |
*/ |
|
70 |
public void testRegisterGetGeometryType() throws Exception { |
|
71 |
manager = new DefaultGeometryManager(1, 1); |
|
72 |
manager.registerGeometryType(TestGeometry.class, |
|
73 |
Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM2D); |
|
74 |
manager.registerGeometryType(TestGeometry.class, |
|
75 |
Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM3D); |
|
76 |
manager.registerGeometryType(TestGeometry.class, |
|
77 |
Geometry.TYPES.MULTISOLID, Geometry.SUBTYPES.GEOM2D); |
|
78 |
manager.registerGeometryType(TestGeometry.class, Geometry.TYPES.ARC, |
|
79 |
Geometry.SUBTYPES.GEOM3DM); |
|
80 |
|
|
81 |
assertNotNull(manager.getGeometryType(Geometry.TYPES.GEOMETRY, |
|
82 |
Geometry.SUBTYPES.GEOM2D)); |
|
83 |
|
|
84 |
assertNotNull(manager.getGeometryType(Geometry.TYPES.GEOMETRY, |
|
85 |
Geometry.SUBTYPES.GEOM3D)); |
|
86 |
|
|
87 |
assertNotNull(manager.getGeometryType(Geometry.TYPES.MULTISOLID, |
|
88 |
Geometry.SUBTYPES.GEOM2D)); |
|
89 |
|
|
90 |
assertNotNull(manager.getGeometryType(Geometry.TYPES.ARC, |
|
91 |
Geometry.SUBTYPES.GEOM3DM)); |
|
92 |
} |
|
93 |
|
|
94 |
/** |
|
95 |
* Test method for |
|
96 |
* {@link org.gvsig.fmap.geom.impl.DefaultGeometryManager#create(int, int)}. |
|
97 |
*/ |
|
98 |
public void testCreateIntInt() throws Exception { |
|
99 |
manager = new DefaultGeometryManager(); |
|
100 |
manager.registerGeometryType(TestGeometry.class, |
|
101 |
Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM2D); |
|
102 |
manager.registerGeometryType(TestGeometry.class, |
|
103 |
Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM3D); |
|
104 |
manager.registerGeometryType(TestGeometry.class, |
|
105 |
Geometry.TYPES.MULTISOLID, Geometry.SUBTYPES.GEOM2D); |
|
106 |
manager.registerGeometryType(TestGeometry.class, Geometry.TYPES.ARC, |
|
107 |
Geometry.SUBTYPES.GEOM3DM); |
|
108 |
|
|
109 |
assertGeometry(manager.create(Geometry.TYPES.GEOMETRY, |
|
110 |
Geometry.SUBTYPES.GEOM2D)); |
|
111 |
|
|
112 |
assertGeometry(manager.create(Geometry.TYPES.GEOMETRY, |
|
113 |
Geometry.SUBTYPES.GEOM3D)); |
|
114 |
|
|
115 |
assertGeometry(manager.create(Geometry.TYPES.MULTISOLID, |
|
116 |
Geometry.SUBTYPES.GEOM2D)); |
|
117 |
|
|
118 |
assertGeometry(manager.create(Geometry.TYPES.ARC, |
|
119 |
Geometry.SUBTYPES.GEOM3DM)); |
|
120 |
} |
|
121 |
|
|
122 |
private void assertGeometry(Geometry geom) { |
|
123 |
assertNotNull(geom); |
|
124 |
assertEquals(TestGeometry.class, geom.getClass()); |
|
125 |
} |
|
126 |
|
|
127 |
public static class TestGeometry implements Geometry { |
|
128 |
|
|
129 |
private final GeometryType geometryType; |
|
130 |
|
|
131 |
public TestGeometry(GeometryType geometryType) { |
|
132 |
this.geometryType = geometryType; |
|
133 |
} |
|
134 |
|
|
135 |
public Geometry cloneGeometry() { |
|
136 |
// TODO Auto-generated method stub |
|
137 |
return null; |
|
138 |
} |
|
139 |
|
|
140 |
public boolean fastIntersects(double x, double y, double w, double h) { |
|
141 |
// TODO Auto-generated method stub |
|
142 |
return false; |
|
143 |
} |
|
144 |
|
|
145 |
public Rectangle2D getBounds2D() { |
|
146 |
// TODO Auto-generated method stub |
|
147 |
return null; |
|
148 |
} |
|
149 |
|
|
150 |
public int getDimension() { |
|
151 |
// TODO Auto-generated method stub |
|
152 |
return 0; |
|
153 |
} |
|
154 |
|
|
155 |
public Envelope getEnvelope() { |
|
156 |
// TODO Auto-generated method stub |
|
157 |
return null; |
|
158 |
} |
|
159 |
|
|
160 |
public GeneralPathX getGeneralPath() { |
|
161 |
// TODO Auto-generated method stub |
|
162 |
return null; |
|
163 |
} |
|
164 |
|
|
165 |
public GeometryType getGeometryType() { |
|
166 |
return geometryType; |
|
167 |
} |
|
168 |
|
|
169 |
public Handler[] getHandlers(int type) { |
|
170 |
// TODO Auto-generated method stub |
|
171 |
return null; |
|
172 |
} |
|
173 |
|
|
174 |
public Shape getInternalShape() { |
|
175 |
// TODO Auto-generated method stub |
|
176 |
return null; |
|
177 |
} |
|
178 |
|
|
179 |
public PathIterator getPathIterator(AffineTransform at) { |
|
180 |
// TODO Auto-generated method stub |
|
181 |
return null; |
|
182 |
} |
|
183 |
|
|
184 |
public PathIterator getPathIterator(AffineTransform at, double flatness) { |
|
185 |
// TODO Auto-generated method stub |
|
186 |
return null; |
|
187 |
} |
|
188 |
|
|
189 |
public int getType() { |
|
190 |
return 0; |
|
191 |
} |
|
192 |
|
|
193 |
public boolean intersects(Rectangle2D r) { |
|
194 |
// TODO Auto-generated method stub |
|
195 |
return false; |
|
196 |
} |
|
197 |
|
|
198 |
public Object invokeOperation(int index, GeometryOperationContext ctx) |
|
199 |
throws GeometryOperationNotSupportedException, |
|
200 |
GeometryOperationException { |
|
201 |
// TODO Auto-generated method stub |
|
202 |
return null; |
|
203 |
} |
|
204 |
|
|
205 |
public Object invokeOperation(String opName, |
|
206 |
GeometryOperationContext ctx) |
|
207 |
throws GeometryOperationNotSupportedException, |
|
208 |
GeometryOperationException { |
|
209 |
// TODO Auto-generated method stub |
|
210 |
return null; |
|
211 |
} |
|
212 |
|
|
213 |
public boolean isSimple() { |
|
214 |
// TODO Auto-generated method stub |
|
215 |
return false; |
|
216 |
} |
|
217 |
|
|
218 |
public void reProject(ICoordTrans ct) { |
|
219 |
// TODO Auto-generated method stub |
|
220 |
|
|
221 |
} |
|
222 |
|
|
223 |
public void transform(AffineTransform at) { |
|
224 |
// TODO Auto-generated method stub |
|
225 |
|
|
226 |
} |
|
227 |
|
|
228 |
public boolean contains(Point2D p) { |
|
229 |
// TODO Auto-generated method stub |
|
230 |
return false; |
|
231 |
} |
|
232 |
|
|
233 |
public boolean contains(Rectangle2D r) { |
|
234 |
// TODO Auto-generated method stub |
|
235 |
return false; |
|
236 |
} |
|
237 |
|
|
238 |
public boolean contains(double x, double y) { |
|
239 |
// TODO Auto-generated method stub |
|
240 |
return false; |
|
241 |
} |
|
242 |
|
|
243 |
public boolean contains(double x, double y, double w, double h) { |
|
244 |
// TODO Auto-generated method stub |
|
245 |
return false; |
|
246 |
} |
|
247 |
|
|
248 |
public Rectangle getBounds() { |
|
249 |
// TODO Auto-generated method stub |
|
250 |
return null; |
|
251 |
} |
|
252 |
|
|
253 |
public boolean intersects(double x, double y, double w, double h) { |
|
254 |
// TODO Auto-generated method stub |
|
255 |
return false; |
|
256 |
} |
|
257 |
|
|
258 |
public int compareTo(Object arg0) { |
|
259 |
// TODO Auto-generated method stub |
|
260 |
return 0; |
|
261 |
} |
|
262 |
|
|
263 |
public Geometry buffer(double distance) |
|
264 |
throws GeometryOperationNotSupportedException, |
|
265 |
GeometryOperationException { |
|
266 |
// TODO Auto-generated method stub |
|
267 |
return null; |
|
268 |
} |
|
269 |
|
|
270 |
public boolean contains(Geometry geometry) |
|
271 |
throws GeometryOperationNotSupportedException, |
|
272 |
GeometryOperationException { |
|
273 |
// TODO Auto-generated method stub |
|
274 |
return false; |
|
275 |
} |
|
276 |
|
|
277 |
public byte[] convertToWKB() |
|
278 |
throws GeometryOperationNotSupportedException, |
|
279 |
GeometryOperationException { |
|
280 |
// TODO Auto-generated method stub |
|
281 |
return null; |
|
282 |
} |
|
283 |
|
|
284 |
public String convertToWKT() |
|
285 |
throws GeometryOperationNotSupportedException, |
|
286 |
GeometryOperationException { |
|
287 |
// TODO Auto-generated method stub |
|
288 |
return null; |
|
289 |
} |
|
290 |
|
|
291 |
public Geometry convexHull() |
|
292 |
throws GeometryOperationNotSupportedException, |
|
293 |
GeometryOperationException { |
|
294 |
// TODO Auto-generated method stub |
|
295 |
return null; |
|
296 |
} |
|
297 |
|
|
298 |
public boolean coveredBy(Geometry geometry) |
|
299 |
throws GeometryOperationNotSupportedException, |
|
300 |
GeometryOperationException { |
|
301 |
// TODO Auto-generated method stub |
|
302 |
return false; |
|
303 |
} |
|
304 |
|
|
305 |
public boolean crosses(Geometry geometry) |
|
306 |
throws GeometryOperationNotSupportedException, |
|
307 |
GeometryOperationException { |
|
308 |
// TODO Auto-generated method stub |
|
309 |
return false; |
|
310 |
} |
|
311 |
|
|
312 |
public Geometry difference(Geometry other) |
|
313 |
throws GeometryOperationNotSupportedException, |
|
314 |
GeometryOperationException { |
|
315 |
// TODO Auto-generated method stub |
|
316 |
return null; |
|
317 |
} |
|
318 |
|
|
319 |
public boolean disjoint(Geometry geometry) |
|
320 |
throws GeometryOperationNotSupportedException, |
|
321 |
GeometryOperationException { |
|
322 |
// TODO Auto-generated method stub |
|
323 |
return false; |
|
324 |
} |
|
325 |
|
|
326 |
public double distance(Geometry geometry) |
|
327 |
throws GeometryOperationNotSupportedException, |
|
328 |
GeometryOperationException { |
|
329 |
// TODO Auto-generated method stub |
|
330 |
return 0; |
|
331 |
} |
|
332 |
|
|
333 |
public Geometry intersection(Geometry other) |
|
334 |
throws GeometryOperationNotSupportedException, |
|
335 |
GeometryOperationException { |
|
336 |
// TODO Auto-generated method stub |
|
337 |
return null; |
|
338 |
} |
|
339 |
|
|
340 |
public boolean intersects(Geometry geometry) |
|
341 |
throws GeometryOperationNotSupportedException, |
|
342 |
GeometryOperationException { |
|
343 |
// TODO Auto-generated method stub |
|
344 |
return false; |
|
345 |
} |
|
346 |
|
|
347 |
public boolean overlaps(Geometry geometry) |
|
348 |
throws GeometryOperationNotSupportedException, |
|
349 |
GeometryOperationException { |
|
350 |
// TODO Auto-generated method stub |
|
351 |
return false; |
|
352 |
} |
|
353 |
|
|
354 |
public boolean touches(Geometry geometry) |
|
355 |
throws GeometryOperationNotSupportedException, |
|
356 |
GeometryOperationException { |
|
357 |
// TODO Auto-generated method stub |
|
358 |
return false; |
|
359 |
} |
|
360 |
|
|
361 |
public Geometry union(Geometry other) |
|
362 |
throws GeometryOperationNotSupportedException, |
|
363 |
GeometryOperationException { |
|
364 |
// TODO Auto-generated method stub |
|
365 |
return null; |
|
366 |
} |
|
367 |
|
|
368 |
public boolean within(Geometry geometry) |
|
369 |
throws GeometryOperationNotSupportedException, |
|
370 |
GeometryOperationException { |
|
371 |
// TODO Auto-generated method stub |
|
372 |
return false; |
|
373 |
} |
|
374 |
|
|
375 |
public Point centroid() throws GeometryOperationNotSupportedException, |
|
376 |
GeometryOperationException { |
|
377 |
// TODO Auto-generated method stub |
|
378 |
return null; |
|
379 |
} |
|
380 |
|
|
381 |
public double area() throws GeometryOperationNotSupportedException, |
|
382 |
GeometryOperationException { |
|
383 |
// TODO Auto-generated method stub |
|
384 |
return 0; |
|
385 |
} |
|
386 |
|
|
387 |
public double perimeter() |
|
388 |
throws GeometryOperationNotSupportedException, |
|
389 |
GeometryOperationException { |
|
390 |
// TODO Auto-generated method stub |
|
391 |
return 0; |
|
392 |
} |
|
393 |
|
|
394 |
public Shape getShape() { |
|
395 |
// TODO Auto-generated method stub |
|
396 |
return null; |
|
397 |
} |
|
398 |
|
|
399 |
public Shape getShape(AffineTransform affineTransform) { |
|
400 |
// TODO Auto-generated method stub |
|
401 |
return null; |
|
402 |
} |
|
403 |
|
|
404 |
/* (non-Javadoc) |
|
405 |
* @see org.gvsig.fmap.geom.Geometry#getInteriorPoint() |
|
406 |
*/ |
|
407 |
public Point getInteriorPoint() |
|
408 |
throws GeometryOperationNotSupportedException, |
|
409 |
GeometryOperationException { |
|
410 |
// TODO Auto-generated method stub |
|
411 |
return null; |
|
412 |
} |
|
413 |
|
|
414 |
/* (non-Javadoc) |
|
415 |
* @see org.gvsig.fmap.geom.Geometry#rotate(double, double, double) |
|
416 |
*/ |
|
417 |
public void rotate(double radAngle, double basex, double basey) { |
|
418 |
// TODO Auto-generated method stub |
|
419 |
|
|
420 |
} |
|
421 |
|
|
422 |
/* (non-Javadoc) |
|
423 |
* @see org.gvsig.fmap.geom.Geometry#move(double, double) |
|
424 |
*/ |
|
425 |
public void move(double dx, double dy) { |
|
426 |
// TODO Auto-generated method stub |
|
427 |
|
|
428 |
} |
|
429 |
|
|
430 |
/* (non-Javadoc) |
|
431 |
* @see org.gvsig.fmap.geom.Geometry#scale(org.gvsig.fmap.geom.primitive.Point, double, double) |
|
432 |
*/ |
|
433 |
public void scale(Point basePoint, double sx, double sy) { |
|
434 |
// TODO Auto-generated method stub |
|
435 |
|
|
436 |
} |
|
437 |
|
|
438 |
/* (non-Javadoc) |
|
439 |
* @see org.gvsig.fmap.geom.Geometry#closestPoints(org.gvsig.fmap.geom.Geometry) |
|
440 |
*/ |
|
441 |
public Geometry[] closestPoints(Geometry other) |
|
442 |
throws GeometryOperationNotSupportedException, |
|
443 |
GeometryOperationException { |
|
444 |
// TODO Auto-generated method stub |
|
445 |
return null; |
|
446 |
} |
|
447 |
|
|
448 |
/* (non-Javadoc) |
|
449 |
* @see org.gvsig.fmap.geom.Geometry#isWithinDistance(org.gvsig.fmap.geom.Geometry, double) |
|
450 |
*/ |
|
451 |
public boolean isWithinDistance(Geometry other, double distance) |
|
452 |
throws GeometryOperationNotSupportedException, |
|
453 |
GeometryOperationException { |
|
454 |
// TODO Auto-generated method stub |
|
455 |
return false; |
|
456 |
} |
|
457 |
|
|
458 |
/* (non-Javadoc) |
|
459 |
* @see org.gvsig.fmap.geom.Geometry#snapTo(org.gvsig.fmap.geom.Geometry, double) |
|
460 |
*/ |
|
461 |
public Geometry snapTo(Geometry other, double snapTolerance) |
|
462 |
throws GeometryOperationNotSupportedException, |
|
463 |
GeometryOperationException { |
|
464 |
// TODO Auto-generated method stub |
|
465 |
return null; |
|
466 |
} |
|
467 |
|
|
468 |
} |
|
469 |
} |
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/wktparser/WKTParserTest.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {Iver T.I.} {Task} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom.wktparser; |
|
29 |
|
|
30 |
import java.awt.geom.PathIterator; |
|
31 |
|
|
32 |
import com.vividsolutions.jts.io.ParseException; |
|
33 |
|
|
34 |
import junit.framework.Assert; |
|
35 |
|
|
36 |
import org.gvsig.fmap.geom.Geometry; |
|
37 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
38 |
import org.gvsig.fmap.geom.GeometryManager; |
|
39 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
40 |
import org.gvsig.fmap.geom.operation.fromwkt.WKTParser; |
|
41 |
import org.gvsig.fmap.geom.primitive.Curve; |
|
42 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
|
43 |
import org.slf4j.Logger; |
|
44 |
import org.slf4j.LoggerFactory; |
|
45 |
|
|
46 |
/** |
|
47 |
* @author jldominguez |
|
48 |
*/ |
|
49 |
public class WKTParserTest extends AbstractLibraryAutoInitTestCase { |
|
50 |
private GeometryManager manager; |
|
51 |
|
|
52 |
final static private Logger logger = LoggerFactory.getLogger("org.gvsig"); |
|
53 |
|
|
54 |
protected void doSetUp() throws Exception { |
|
55 |
manager = GeometryLocator.getGeometryManager(); |
|
56 |
} |
|
57 |
|
|
58 |
public void testParseWKT() throws InstantiationException, IllegalAccessException, CreateGeometryException{ |
|
59 |
|
|
60 |
|
|
61 |
WKTParser wp = new WKTParser(); |
|
62 |
try { |
|
63 |
Geometry geom = wp.read("LINESTRING(0 0, 1 1, 2 1)"); |
|
64 |
|
|
65 |
Assert.assertTrue(geom instanceof Curve); |
|
66 |
PathIterator piter = geom.getPathIterator(null); |
|
67 |
|
|
68 |
double[] curr = new double[6]; |
|
69 |
int type = 0; |
|
70 |
|
|
71 |
type = piter.currentSegment(curr); |
|
72 |
Assert.assertEquals(PathIterator.SEG_MOVETO, type); |
|
73 |
Assert.assertEquals(0, curr[0], 0.0000000001); |
|
74 |
Assert.assertEquals(0, curr[1], 0.0000000001); |
|
75 |
piter.next(); |
|
76 |
|
|
77 |
type = piter.currentSegment(curr); |
|
78 |
Assert.assertEquals(PathIterator.SEG_LINETO, type); |
|
79 |
Assert.assertEquals(1, curr[0], 0.0000000001); |
|
80 |
Assert.assertEquals(1, curr[1], 0.0000000001); |
|
81 |
piter.next(); |
|
82 |
|
|
83 |
type = piter.currentSegment(curr); |
|
84 |
Assert.assertEquals(PathIterator.SEG_LINETO, type); |
|
85 |
Assert.assertEquals(2, curr[0], 0.0000000001); |
|
86 |
Assert.assertEquals(1, curr[1], 0.0000000001); |
|
87 |
|
|
88 |
piter.next(); |
|
89 |
Assert.assertTrue(piter.isDone()); |
|
90 |
|
|
91 |
} catch (ParseException e) { |
|
92 |
logger.info("Error while checking line string from WKT.", e); |
|
93 |
Assert.assertTrue(e == null); |
|
94 |
} |
|
95 |
|
|
96 |
} |
|
97 |
} |
|
98 |
|
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/GeometryAPITest.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
|
|
23 |
/* |
|
24 |
* AUTHORS (In addition to CIT): |
|
25 |
* 2009 {Iver T.I.} {Task} |
|
26 |
*/ |
|
27 |
|
|
28 |
package org.gvsig.fmap.geom; |
|
29 |
|
|
30 |
import java.awt.geom.Rectangle2D; |
|
31 |
|
|
32 |
import junit.framework.Assert; |
|
33 |
|
|
34 |
import org.slf4j.Logger; |
|
35 |
import org.slf4j.LoggerFactory; |
|
36 |
|
|
37 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
38 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
39 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
40 |
import org.gvsig.fmap.geom.primitive.Point; |
|
41 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
|
42 |
|
|
43 |
/** |
|
44 |
* Tests some methods in geometry API with various instances. |
|
45 |
* |
|
46 |
* @author jldominguez |
|
47 |
* |
|
48 |
*/ |
|
49 |
public class GeometryAPITest extends AbstractLibraryAutoInitTestCase { |
|
50 |
private GeometryManager manager; |
|
51 |
|
|
52 |
final static private Logger logger = LoggerFactory.getLogger("org.gvsig"); |
|
53 |
|
|
54 |
protected void doSetUp() throws Exception { |
|
55 |
manager = GeometryLocator.getGeometryManager(); |
|
56 |
} |
|
57 |
|
|
58 |
public void testMethods() throws InstantiationException, IllegalAccessException, CreateGeometryException{ |
|
59 |
|
|
60 |
try { |
|
61 |
Envelope env0 = manager.createEnvelope(0,0,1,1, SUBTYPES.GEOM2D); |
|
62 |
Envelope env1 = manager.createEnvelope(2,0,3,1, SUBTYPES.GEOM2D); |
|
63 |
Geometry g0 = env0.getGeometry(); |
|
64 |
Geometry g1 = env1.getGeometry(); |
|
65 |
Geometry gm = g0.union(g1); |
|
66 |
|
|
67 |
gm.move(-2,2); |
|
68 |
|
|
69 |
double cxy = gm.getBounds2D().getCenterX() |
|
70 |
*gm.getBounds2D().getCenterY(); |
|
71 |
// test move ============================ |
|
72 |
Assert.assertEquals(-1.25, cxy, 0.0000000001); |
|
73 |
// ========================================== |
|
74 |
|
|
75 |
gm.move(2,-2); |
|
76 |
gm.rotate(30.0*Math.PI/180.0, 0,1); |
|
77 |
|
|
78 |
double maxy = 1 + 3 * Math.sin(30.0*Math.PI/180.0); |
|
79 |
// test rotation ============================ |
|
80 |
Assert.assertEquals(maxy, gm.getBounds2D().getMaxY(), 0.0000000001); |
|
81 |
// ========================================== |
|
82 |
|
|
83 |
|
|
84 |
gm.rotate(-30.0*Math.PI/180.0, 0,1); |
|
85 |
Point p = manager.createPoint(1.5, 0.5, SUBTYPES.GEOM2D); |
|
86 |
gm.scale(p, 0.5, 1.5); |
|
87 |
|
|
88 |
Rectangle2D bb = gm.getBounds2D(); |
|
89 |
// test scale ============================ |
|
90 |
Assert.assertEquals(0.75, bb.getMinX(), 0.0000000001); |
|
91 |
Assert.assertEquals(-0.25, bb.getMinY(), 0.0000000001); |
|
92 |
Assert.assertEquals(2.25, bb.getMaxX(), 0.0000000001); |
|
93 |
Assert.assertEquals(1.25, bb.getMaxY(), 0.0000000001); |
|
94 |
// ======================================= |
|
95 |
|
|
96 |
} catch (Exception e) { |
|
97 |
logger.info("Error while checking Geometry API.", e); |
|
98 |
Assert.assertTrue(e == null); |
|
99 |
} |
|
100 |
|
|
101 |
} |
|
102 |
} |
|
103 |
|
tags/v2_0_0_Build_2060/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/GeometryManagerTest.java | ||
---|---|---|
1 |
package org.gvsig.fmap.geom; |
|
2 |
|
|
3 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
4 |
import org.gvsig.fmap.geom.Geometry.TYPES; |
|
5 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
Also available in: Unified diff