use of org.geotoolkit.geometry.isoonjts.spatialschema.geometry.geometry.JTSLineString in project geotoolkit by Geomatys.
the class JTSGeometryBindingTest method CurveUnmarshalingTest.
/**
* Test curve Marshalling.
*/
@Test
public void CurveUnmarshalingTest() throws Exception {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + '\n' + "<gml:Curve srsName=\"urn:ogc:def:crs:epsg::27572\" xmlns:gml=\"http://www.opengis.net/gml\">" + '\n' + " <gml:segments>" + '\n' + " <gml:LineStringSegment interpolation=\"linear\">" + '\n' + " <gml:pos>401500.0 3334500.0</gml:pos>" + '\n' + " <gml:pos>401700.0 3334850.0</gml:pos>" + '\n' + " <gml:pos>402200.0 3335200.0</gml:pos>" + '\n' + " </gml:LineStringSegment>" + '\n' + " <gml:LineStringSegment interpolation=\"linear\">" + '\n' + " <gml:pos>402320.0 3334850.0</gml:pos>" + '\n' + " <gml:pos>402200.0 3335200.0</gml:pos>" + '\n' + " </gml:LineStringSegment>" + '\n' + " </gml:segments>" + '\n' + "</gml:Curve>" + '\n';
CoordinateReferenceSystem crs = CRS.forCode("urn:ogc:def:crs:epsg::27572");
assertTrue(crs != null);
JTSCurve expResult = new JTSCurve(crs);
JTSLineString line1 = new JTSLineString(crs);
DirectPosition p1 = new GeneralDirectPosition(crs);
p1.setOrdinate(0, 401500);
p1.setOrdinate(1, 3334500);
DirectPosition p2 = new GeneralDirectPosition(crs);
p2.setOrdinate(0, 401700);
p2.setOrdinate(1, 3334850);
DirectPosition p3 = new GeneralDirectPosition(crs);
p3.setOrdinate(0, 402200);
p3.setOrdinate(1, 3335200);
line1.getControlPoints().add(p1);
line1.getControlPoints().add(p2);
line1.getControlPoints().add(p3);
expResult.getSegments().add(line1);
JTSLineString line2 = new JTSLineString(crs);
DirectPosition p21 = new GeneralDirectPosition(crs);
p21.setOrdinate(0, 402320);
p21.setOrdinate(1, 3334850);
DirectPosition p22 = new GeneralDirectPosition(crs);
p22.setOrdinate(0, 402200);
p22.setOrdinate(1, 3335200);
line2.getControlPoints().add(p21);
line2.getControlPoints().add(p22);
expResult.getSegments().add(line2);
JTSCurve result = (JTSCurve) ((JAXBElement) un.unmarshal(new StringReader(xml))).getValue();
assertEquals(((GeneralDirectPosition) ((JTSLineString) expResult.getSegments().get(0)).getPositions().get(0)).getCoordinateReferenceSystem(), ((GeneralDirectPosition) ((JTSLineString) result.getSegments().get(0)).getPositions().get(0)).getCoordinateReferenceSystem());
assertEquals(((JTSLineString) expResult.getSegments().get(0)).getPositions().get(0), ((JTSLineString) result.getSegments().get(0)).getPositions().get(0));
assertEquals(((JTSLineString) expResult.getSegments().get(0)).getPositions(), ((JTSLineString) result.getSegments().get(0)).getPositions());
assertEquals(expResult.getSegments().get(0), result.getSegments().get(0));
assertEquals(expResult.getSegments(), result.getSegments());
assertEquals(expResult, result);
}
use of org.geotoolkit.geometry.isoonjts.spatialschema.geometry.geometry.JTSLineString in project geotoolkit by Geomatys.
the class JTSGeometryBindingTest method CompositeCurveUnmarshalingTest.
/**
* Test Composite curve Marshalling.
*/
@Test
public void CompositeCurveUnmarshalingTest() throws Exception {
CoordinateReferenceSystem crs = CRS.forCode("urn:ogc:def:crs:epsg::27572");
assertTrue(crs != null);
DirectPosition p1 = new GeneralDirectPosition(crs);
p1.setOrdinate(0, 402000);
p1.setOrdinate(1, 3334850);
DirectPosition p2 = new GeneralDirectPosition(crs);
p2.setOrdinate(0, 402200);
p2.setOrdinate(1, 3335200);
JTSLineString l1 = new JTSLineString(crs);
l1.getControlPoints().add(p1);
l1.getControlPoints().add(p2);
JTSCurve c2 = new JTSCurve(crs);
c2.getSegments().add(l1);
JTSCurve c1 = new JTSCurve(crs);
JTSLineString l2 = new JTSLineString(crs);
DirectPosition p21 = new GeneralDirectPosition(crs);
p21.setOrdinate(0, 401500);
p21.setOrdinate(1, 3334500);
DirectPosition p22 = new GeneralDirectPosition(crs);
p22.setOrdinate(0, 401700);
p22.setOrdinate(1, 3334850);
DirectPosition p23 = new GeneralDirectPosition(crs);
p23.setOrdinate(0, 402200);
p23.setOrdinate(1, 3335200);
l2.getControlPoints().add(p21);
l2.getControlPoints().add(p22);
l2.getControlPoints().add(p23);
c1.getSegments().add(l2);
JTSLineString l3 = new JTSLineString(crs);
DirectPosition p31 = new GeneralDirectPosition(crs);
p31.setOrdinate(0, 402320);
p31.setOrdinate(1, 3334850);
DirectPosition p32 = new GeneralDirectPosition(crs);
p32.setOrdinate(0, 402200);
p32.setOrdinate(1, 3335200);
l3.getControlPoints().add(p31);
l3.getControlPoints().add(p32);
c1.getSegments().add(l3);
JTSCompositeCurve expResult = new JTSCompositeCurve(null, crs);
// compositeCurve.getElements().add(l1); TODO
expResult.getElements().add(c1);
expResult.getElements().add(c2);
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + '\n' + "<gml:CompositeCurve srsName=\"urn:ogc:def:crs:epsg::27572\" xmlns:gml=\"http://www.opengis.net/gml\">" + '\n' + " <gml:curveMember>" + '\n' + " <gml:Curve srsName=\"urn:ogc:def:crs:epsg::27572\">" + '\n' + " <gml:segments>" + '\n' + " <gml:LineStringSegment interpolation=\"linear\">" + '\n' + " <gml:pos>401500.0 3334500.0</gml:pos>" + '\n' + " <gml:pos>401700.0 3334850.0</gml:pos>" + '\n' + " <gml:pos>402200.0 3335200.0</gml:pos>" + '\n' + " </gml:LineStringSegment>" + '\n' + " <gml:LineStringSegment interpolation=\"linear\">" + '\n' + " <gml:pos>402320.0 3334850.0</gml:pos>" + '\n' + " <gml:pos>402200.0 3335200.0</gml:pos>" + '\n' + " </gml:LineStringSegment>" + '\n' + " </gml:segments>" + '\n' + " </gml:Curve>" + '\n' + " </gml:curveMember>" + '\n' + " <gml:curveMember>" + '\n' + " <gml:Curve srsName=\"urn:ogc:def:crs:epsg::27572\">" + '\n' + " <gml:segments>" + '\n' + " <gml:LineStringSegment interpolation=\"linear\">" + '\n' + " <gml:pos>402000.0 3334850.0</gml:pos>" + '\n' + " <gml:pos>402200.0 3335200.0</gml:pos>" + '\n' + " </gml:LineStringSegment>" + '\n' + " </gml:segments>" + '\n' + " </gml:Curve>" + '\n' + " </gml:curveMember>" + '\n' + "</gml:CompositeCurve>" + '\n';
JTSCompositeCurve result = (JTSCompositeCurve) ((JAXBElement) un.unmarshal(new StringReader(xml))).getValue();
assertEquals(((JTSLineString) ((JTSCurve) expResult.getElements().iterator().next()).getSegments().get(0)).getCoordinateReferenceSystem(), ((JTSLineString) ((JTSCurve) result.getElements().iterator().next()).getSegments().get(0)).getCoordinateReferenceSystem());
assertEquals(((JTSCurve) expResult.getElements().iterator().next()).getSegments().get(0), ((JTSCurve) result.getElements().iterator().next()).getSegments().get(0));
assertEquals(((JTSCurve) expResult.getElements().iterator().next()).getSegments(), ((JTSCurve) result.getElements().iterator().next()).getSegments());
assertEquals(expResult.getElements().iterator().next(), result.getElements().iterator().next());
assertEquals(expResult, result);
}
use of org.geotoolkit.geometry.isoonjts.spatialschema.geometry.geometry.JTSLineString in project geotoolkit by Geomatys.
the class JTSGeometryBindingTest method PolygonUnmarshalingTest.
/**
* Test Ring Unmarshalling.
*/
@Test
public void PolygonUnmarshalingTest() throws Exception {
CoordinateReferenceSystem crs = CRS.forCode("urn:ogc:def:crs:epsg::27572");
assertTrue(crs != null);
// EXTERIOR
JTSRing exterior1 = new JTSRing(crs);
JTSCurve c1 = new JTSCurve(crs);
JTSLineString c1l1 = new JTSLineString(crs);
DirectPosition c1l1p1 = new GeneralDirectPosition(crs);
c1l1p1.setOrdinate(0, 401500);
c1l1p1.setOrdinate(1, 3334500);
DirectPosition c1l1p2 = new GeneralDirectPosition(crs);
c1l1p2.setOrdinate(0, 401700);
c1l1p2.setOrdinate(1, 3334850);
DirectPosition c1l1p3 = new GeneralDirectPosition(crs);
c1l1p3.setOrdinate(0, 402200);
c1l1p3.setOrdinate(1, 3335200);
c1l1.getControlPoints().add(c1l1p1);
c1l1.getControlPoints().add(c1l1p2);
c1l1.getControlPoints().add(c1l1p3);
DirectPosition c1l2p1 = new GeneralDirectPosition(crs);
c1l2p1.setOrdinate(0, 402320);
c1l2p1.setOrdinate(1, 3334850);
DirectPosition c1l2p2 = new GeneralDirectPosition(crs);
c1l2p2.setOrdinate(0, 402200);
c1l2p2.setOrdinate(1, 3335200);
c1l1.getControlPoints().add(c1l2p1);
c1l1.getControlPoints().add(c1l2p2);
c1.getSegments().add(c1l1);
exterior1.getElements().add(c1);
// INTERIOR
Ring[] interiors1 = new Ring[1];
JTSRing interior1 = new JTSRing(crs);
JTSCurve c2 = new JTSCurve(crs);
JTSLineString c2l1 = new JTSLineString(crs);
DirectPosition c2l1p1 = new GeneralDirectPosition(crs);
c2l1p1.setOrdinate(0, 401500);
c2l1p1.setOrdinate(1, 3334500);
DirectPosition c2l1p2 = new GeneralDirectPosition(crs);
c2l1p2.setOrdinate(0, 401700);
c2l1p2.setOrdinate(1, 3334850);
DirectPosition c2l1p3 = new GeneralDirectPosition(crs);
c2l1p3.setOrdinate(0, 402200);
c2l1p3.setOrdinate(1, 3335200);
c2l1.getControlPoints().add(c2l1p1);
c2l1.getControlPoints().add(c2l1p2);
c2l1.getControlPoints().add(c2l1p3);
c2.getSegments().add(c2l1);
interior1.getElements().add(c2);
interiors1[0] = interior1;
JTSSurfaceBoundary bound1 = new JTSSurfaceBoundary(crs, exterior1, interiors1);
JTSPolygon expResult = new JTSPolygon(bound1);
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + '\n' + "<gml:Polygon srsName=\"urn:ogc:def:crs:epsg::27572\" xmlns:gml=\"http://www.opengis.net/gml\">" + '\n' + " <gml:exterior>" + '\n' + " <gml:LinearRing>" + '\n' + " <gml:posList>401500.0 3334500.0 401700.0 3334850.0 402200.0 3335200.0 402320.0 3334850.0 402200.0 3335200.0</gml:posList>" + '\n' + " </gml:LinearRing>" + '\n' + " </gml:exterior>" + '\n' + " <gml:interior>" + '\n' + " <gml:LinearRing>" + '\n' + " <gml:posList>401500.0 3334500.0 401700.0 3334850.0 402200.0 3335200.0</gml:posList>" + '\n' + " </gml:LinearRing>" + '\n' + " </gml:interior>" + '\n' + "</gml:Polygon>" + '\n';
PolygonType temp = (PolygonType) ((JAXBElement) un.unmarshal(new StringReader(xml))).getValue();
JTSPolygon result = temp.getJTSPolygon();
assertEquals(expResult, result);
xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + '\n' + "<gml:Polygon srsName=\"urn:ogc:def:crs:epsg::27572\" xmlns:gml=\"http://www.opengis.net/gml\">" + '\n' + " <gml:outerBoundaryIs>" + '\n' + " <gml:LinearRing>" + '\n' + " <gml:posList>401500.0 3334500.0 401700.0 3334850.0 402200.0 3335200.0 402320.0 3334850.0 402200.0 3335200.0</gml:posList>" + '\n' + " </gml:LinearRing>" + '\n' + " </gml:outerBoundaryIs>" + '\n' + " <gml:innerBoundaryIs>" + '\n' + " <gml:LinearRing>" + '\n' + " <gml:posList>401500.0 3334500.0 401700.0 3334850.0 402200.0 3335200.0</gml:posList>" + '\n' + " </gml:LinearRing>" + '\n' + " </gml:innerBoundaryIs>" + '\n' + "</gml:Polygon>" + '\n';
temp = (PolygonType) ((JAXBElement) un.unmarshal(new StringReader(xml))).getValue();
result = temp.getJTSPolygon();
assertEquals(expResult, result);
}
use of org.geotoolkit.geometry.isoonjts.spatialschema.geometry.geometry.JTSLineString in project geotoolkit by Geomatys.
the class JTSGeometryBindingTest method CurveMarshalingTest.
/**
* Test curve Marshalling.
*/
@Test
public void CurveMarshalingTest() throws Exception {
CoordinateReferenceSystem crs = CRS.forCode("urn:ogc:def:crs:epsg::27572");
assertTrue(crs != null);
JTSCurve curve = new JTSCurve(crs);
JTSLineString line1 = new JTSLineString();
DirectPosition p1 = new GeneralDirectPosition(crs);
p1.setOrdinate(0, 401500);
p1.setOrdinate(1, 3334500);
DirectPosition p2 = new GeneralDirectPosition(crs);
p2.setOrdinate(0, 401700);
p2.setOrdinate(1, 3334850);
DirectPosition p3 = new GeneralDirectPosition(crs);
p3.setOrdinate(0, 402200);
p3.setOrdinate(1, 3335200);
line1.getControlPoints().add(p1);
line1.getControlPoints().add(p2);
line1.getControlPoints().add(p3);
curve.getSegments().add(line1);
JTSLineString line2 = new JTSLineString();
DirectPosition p21 = new GeneralDirectPosition(crs);
p21.setOrdinate(0, 402320);
p21.setOrdinate(1, 3334850);
DirectPosition p22 = new GeneralDirectPosition(crs);
p22.setOrdinate(0, 402200);
p22.setOrdinate(1, 3335200);
line2.getControlPoints().add(p21);
line2.getControlPoints().add(p22);
curve.getSegments().add(line2);
StringWriter sw = new StringWriter();
m.marshal(factory.createJTSCurve(curve), sw);
String result = sw.toString();
result = result.replaceAll("(?i)epsg\\:\\d+\\.\\d+\\.?\\d*\\:", "epsg::");
String expResult = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + '\n' + "<gml:Curve xmlns:gml=\"http://www.opengis.net/gml\" srsName=\"urn:ogc:def:crs:epsg::27572\" >" + '\n' + " <gml:segments>" + '\n' + " <gml:LineStringSegment interpolation=\"linear\">" + '\n' + " <gml:pos>401500.0 3334500.0</gml:pos>" + '\n' + " <gml:pos>401700.0 3334850.0</gml:pos>" + '\n' + " <gml:pos>402200.0 3335200.0</gml:pos>" + '\n' + " </gml:LineStringSegment>" + '\n' + " <gml:LineStringSegment interpolation=\"linear\">" + '\n' + " <gml:pos>402320.0 3334850.0</gml:pos>" + '\n' + " <gml:pos>402200.0 3335200.0</gml:pos>" + '\n' + " </gml:LineStringSegment>" + '\n' + " </gml:segments>" + '\n' + "</gml:Curve>" + '\n';
assertXmlEquals(expResult, result, "xmlns:*");
pool.recycle(m);
}
use of org.geotoolkit.geometry.isoonjts.spatialschema.geometry.geometry.JTSLineString in project geotoolkit by Geomatys.
the class JTSGeometryBindingTest method PolygonMarshalingTest.
/**
* Test Ring Unmarshalling.
*/
@Test
public void PolygonMarshalingTest() throws Exception {
CoordinateReferenceSystem crs = CRS.forCode("urn:ogc:def:crs:epsg::27572");
assertTrue(crs != null);
// EXTERIOR
JTSRing exterior1 = new JTSRing(crs);
JTSCurve c1 = new JTSCurve(crs);
JTSLineString c1l1 = new JTSLineString();
DirectPosition c1l1p1 = new GeneralDirectPosition(crs);
c1l1p1.setOrdinate(0, 401500);
c1l1p1.setOrdinate(1, 3334500);
DirectPosition c1l1p2 = new GeneralDirectPosition(crs);
c1l1p2.setOrdinate(0, 401700);
c1l1p2.setOrdinate(1, 3334850);
DirectPosition c1l1p3 = new GeneralDirectPosition(crs);
c1l1p3.setOrdinate(0, 402200);
c1l1p3.setOrdinate(1, 3335200);
DirectPosition c1l2p1 = new GeneralDirectPosition(crs);
c1l2p1.setOrdinate(0, 402320);
c1l2p1.setOrdinate(1, 3334850);
DirectPosition c1l2p2 = new GeneralDirectPosition(crs);
c1l2p2.setOrdinate(0, 402200);
c1l2p2.setOrdinate(1, 3335200);
c1l1.getControlPoints().add(c1l1p1);
c1l1.getControlPoints().add(c1l1p2);
c1l1.getControlPoints().add(c1l1p3);
c1l1.getControlPoints().add(c1l2p1);
c1l1.getControlPoints().add(c1l2p2);
c1.getSegments().add(c1l1);
exterior1.getElements().add(c1);
// INTERIOR
Ring[] interiors1 = new Ring[1];
JTSRing interior1 = new JTSRing(crs);
JTSCurve c2 = new JTSCurve(crs);
JTSLineString c2l1 = new JTSLineString();
DirectPosition c2l1p1 = new GeneralDirectPosition(crs);
c2l1p1.setOrdinate(0, 401500);
c2l1p1.setOrdinate(1, 3334500);
DirectPosition c2l1p2 = new GeneralDirectPosition(crs);
c2l1p2.setOrdinate(0, 401700);
c2l1p2.setOrdinate(1, 3334850);
DirectPosition c2l1p3 = new GeneralDirectPosition(crs);
c2l1p3.setOrdinate(0, 402200);
c2l1p3.setOrdinate(1, 3335200);
c2l1.getControlPoints().add(c2l1p1);
c2l1.getControlPoints().add(c2l1p2);
c2l1.getControlPoints().add(c2l1p3);
c2.getSegments().add(c2l1);
interior1.getElements().add(c2);
interiors1[0] = interior1;
JTSSurfaceBoundary bound1 = new JTSSurfaceBoundary(crs, exterior1, interiors1);
JTSPolygon polygon = new JTSPolygon(bound1);
StringWriter sw = new StringWriter();
m.marshal(factory.createJTSPolygon(polygon), sw);
String result = sw.toString();
result = result.replaceAll("(?i)epsg\\:\\d+\\.\\d+\\.?\\d*\\:", "epsg::");
String expResult = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + '\n' + "<gml:Polygon xmlns:gml=\"http://www.opengis.net/gml\" srsName=\"urn:ogc:def:crs:epsg::27572\" >" + '\n' + " <gml:exterior>" + '\n' + " <gml:LinearRing>" + '\n' + " <gml:posList>401500.0 3334500.0 401700.0 3334850.0 402200.0 3335200.0 402320.0 3334850.0 402200.0 3335200.0</gml:posList>" + '\n' + " </gml:LinearRing>" + '\n' + " </gml:exterior>" + '\n' + " <gml:interior>" + '\n' + " <gml:LinearRing>" + '\n' + " <gml:posList>401500.0 3334500.0 401700.0 3334850.0 402200.0 3335200.0</gml:posList>" + '\n' + " </gml:LinearRing>" + '\n' + " </gml:interior>" + '\n' + "</gml:Polygon>" + '\n';
assertXmlEquals(expResult, result, "xmlns:*");
}
Aggregations