/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated modifiable */ public Object parse(ElementInstance instance, Node node, Object value) throws Exception { SpatialSubsetType spatialSubset = Wcs10Factory.eINSTANCE.createSpatialSubsetType(); List<Node> envelopes = node.getChildren("Envelope"); for (Node envelopeNode : envelopes) { ReferencedEnvelope envelope = (ReferencedEnvelope) envelopeNode.getValue(); EnvelopeType env = Gml4wcsFactory.eINSTANCE.createEnvelopeType(); env.setSrsName(CRS.lookupIdentifier(envelope.getCoordinateReferenceSystem(), true)); DirectPositionType pos1 = Gml4wcsFactory.eINSTANCE.createDirectPositionType(); DirectPositionType pos2 = Gml4wcsFactory.eINSTANCE.createDirectPositionType(); pos1.setDimension(BigInteger.valueOf(2)); pos2.setDimension(BigInteger.valueOf(2)); pos1.setValue(Arrays.asList(envelope.getMinX(), envelope.getMinY())); pos2.setValue(Arrays.asList(envelope.getMaxX(), envelope.getMaxY())); env.getPos().add(pos1); env.getPos().add(pos2); spatialSubset.getEnvelope().add(envelope); } List<Node> gridsNode = node.getChildren("Grid"); for (Node grid : gridsNode) spatialSubset.getGrid().add(grid.getValue()); return spatialSubset; }
@Test public void testWCS10GetCoverageDifferentCrs() throws Exception { //xMin,yMin 5988504.35,851278.90 : xMax,yMax 7585113.55,1950872.01 //xMin,yMin -95.1193,42.2802 : xMax,yMax -71.295,53.73 GetCoverageType gc = Wcs10Factory.eINSTANCE.createGetCoverageType(); net.opengis.wcs10.SpatialSubsetType spatialSubset = Wcs10Factory.eINSTANCE.createSpatialSubsetType(); CoordinateReferenceSystem crs = CRS.decode("EPSG:3348", false); CoordinateReferenceSystem logCrs = CRS.decode("EPSG:4326", false); GeneralEnvelope env = new GeneralEnvelope(new double[]{5988504.35, 851278.90}, new double[]{7585113.55,1950872.01}); env.setCoordinateReferenceSystem(crs); BoundingBox bbox = new ReferencedEnvelope(42.2802, 53.73, -95.1193, -71.295, logCrs); spatialSubset.getEnvelope().clear(); spatialSubset.getEnvelope().add(env); net.opengis.wcs10.DomainSubsetType domainSubset = Wcs10Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setSpatialSubset(spatialSubset); gc.setSourceCoverage("acme:foo"); gc.setDomainSubset(domainSubset); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.0.0", gc)); assertEquals("acme:foo", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }
@Test public void testWCS10GetCoverage() throws Exception { GetCoverageType gc = Wcs10Factory.eINSTANCE.createGetCoverageType(); net.opengis.wcs10.SpatialSubsetType spatialSubset = Wcs10Factory.eINSTANCE.createSpatialSubsetType(); CoordinateReferenceSystem crs = CRS.decode("EPSG:4326"); GeneralEnvelope env = new GeneralEnvelope(new double[]{-123.4, 48.2}, new double[]{-120.9, 50.1}); env.setCoordinateReferenceSystem(crs); BoundingBox bbox = new ReferencedEnvelope(env); spatialSubset.getEnvelope().clear(); spatialSubset.getEnvelope().add(env); net.opengis.wcs10.DomainSubsetType domainSubset = Wcs10Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setSpatialSubset(spatialSubset); gc.setSourceCoverage("acme:foo"); gc.setDomainSubset(domainSubset); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.0.0", gc)); assertEquals("acme:foo", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }
@Test public void testWCS10GetCoverageDifferentCrs() throws Exception { // xMin,yMin 5988504.35,851278.90 : xMax,yMax 7585113.55,1950872.01 // xMin,yMin -95.1193,42.2802 : xMax,yMax -71.295,53.73 GetCoverageType gc = Wcs10Factory.eINSTANCE.createGetCoverageType(); net.opengis.wcs10.SpatialSubsetType spatialSubset = Wcs10Factory.eINSTANCE.createSpatialSubsetType(); CoordinateReferenceSystem crs = CRS.decode("EPSG:3348", false); CoordinateReferenceSystem logCrs = CRS.decode("EPSG:4326", false); GeneralEnvelope env = new GeneralEnvelope( new double[] {5988504.35, 851278.90}, new double[] {7585113.55, 1950872.01}); env.setCoordinateReferenceSystem(crs); BoundingBox bbox = new ReferencedEnvelope(42.2802, 53.73, -95.1193, -71.295, logCrs); spatialSubset.getEnvelope().clear(); spatialSubset.getEnvelope().add(env); net.opengis.wcs10.DomainSubsetType domainSubset = Wcs10Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setSpatialSubset(spatialSubset); gc.setSourceCoverage("acme:foo"); gc.setDomainSubset(domainSubset); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.0.0", gc)); assertEquals("acme:foo", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }
@Test public void testWCS10GetCoverage() throws Exception { GetCoverageType gc = Wcs10Factory.eINSTANCE.createGetCoverageType(); net.opengis.wcs10.SpatialSubsetType spatialSubset = Wcs10Factory.eINSTANCE.createSpatialSubsetType(); CoordinateReferenceSystem crs = CRS.decode("EPSG:4326"); GeneralEnvelope env = new GeneralEnvelope(new double[] {-123.4, 48.2}, new double[] {-120.9, 50.1}); env.setCoordinateReferenceSystem(crs); BoundingBox bbox = new ReferencedEnvelope(env); spatialSubset.getEnvelope().clear(); spatialSubset.getEnvelope().add(env); net.opengis.wcs10.DomainSubsetType domainSubset = Wcs10Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setSpatialSubset(spatialSubset); gc.setSourceCoverage("acme:foo"); gc.setDomainSubset(domainSubset); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.0.0", gc)); assertEquals("acme:foo", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }
spatialSubset.getEnvelope().add(envelope); spatialSubset.getGrid().add(grid); domainSubset.setSpatialSubset(spatialSubset);
"Invalid number of Grid for spatial subsetting was set:" + grids.size()); final RectifiedGridType grid = (RectifiedGridType) grids.get(0); final List envelopes = spatialSubset.getEnvelope(); if (envelopes.size() == 0) throw new IllegalArgumentException(
assertEquals("nurc:Pk50095", gc.getSourceCoverage()); GeneralEnvelope envelope = ((GeneralEnvelope) gc.getDomainSubset().getSpatialSubset().getEnvelope().get(0)); assertEquals("EPSG:32633", CRS.lookupIdentifier(envelope.getCoordinateReferenceSystem(),true)); assertEquals(347649.93086859107, envelope.getLowerCorner().getOrdinate(0));
((GeneralEnvelope) gc.getDomainSubset().getSpatialSubset().getEnvelope().get(0)); assertEquals( "EPSG:32633", CRS.lookupIdentifier(envelope.getCoordinateReferenceSystem(), true));