public static CRSEnvelope bbox2bbox(BoundingBoxType bbox) { return new CRSEnvelope( bbox.getCrs(), (Double) bbox.getLowerCorner().get(0), (Double) bbox.getLowerCorner().get(1), (Double) bbox.getUpperCorner().get(0), (Double) bbox.getUpperCorner().get(1)); } }
bbt.setCrs(crsName); bbt.setLowerCorner(Arrays.asList(lower)); bbt.setUpperCorner(Arrays.asList(upper)); return bbt;
if("urn:ogc:def:crs:OGC:1.3:CRS84".equals(bbox.getCrs())) bbox.setCrs("EPSG:4326"); CoordinateReferenceSystem bboxCRs = CRS.decode(bbox.getCrs()); Envelope gridEnvelope = meta.getCoverage().getEnvelope(); GeneralEnvelope gridEnvelopeBboxCRS = null; List<Double> lower = bbox.getLowerCorner(); List<Double> upper = bbox.getUpperCorner(); for (int i = 0; i < lower.size(); i++) { if (lower.get(i) > upper.get(i)) {
/** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated modifiable */ public Object parse(ElementInstance instance, Node node, Object value) throws Exception { BoundingBoxType bbox = Ows11Factory.eINSTANCE.createBoundingBoxType(); bbox.setLowerCorner((List) node.getChildValue("LowerCorner")); bbox.setUpperCorner((List) node.getChildValue("UpperCorner")); if(node.getAttributeValue("crs") != null) { bbox.setCrs(node.getAttributeValue("crs").toString()); } if(node.getAttributeValue("dimensions") != null) { bbox.setDimensions((BigInteger) node.getAttributeValue("dimensions")); } return bbox; }
private BoundingBoxType parseBoundingBox(InputType it, Wps10Factory factory, IOParam param) { try { ReferencedEnvelope envelope = (ReferencedEnvelope) new org.geoserver.wfs.kvp.BBoxKvpParser().parse(param.value); if(envelope != null) { BoundingBoxType bbox = Ows11Factory.eINSTANCE.createBoundingBoxType(); if(envelope.getCoordinateReferenceSystem() != null) { bbox.setCrs(GML2EncodingUtils.epsgCode(envelope.getCoordinateReferenceSystem())); } List<Double> min = new ArrayList<Double>(envelope.getDimension()); List<Double> max = new ArrayList<Double>(envelope.getDimension()); for (int i = 0; i < envelope.getDimension(); i++) { min.set(i, envelope.getMinimum(i)); max.set(i, envelope.getMaximum(i)); } return bbox; } else { return null; } } catch(Exception e) { throw new WPSException("Failed to parse the bounding box", e); } }
Map<String, CRSEnvelope> boundingBoxes = new HashMap<>(); for (BoundingBoxType bbox : bboxes) { boundingBoxes.put(bbox.getCrs(), bbox2bbox(bbox));
bbt.setCrs(crsName); bbt.setLowerCorner(Arrays.asList(lower)); bbt.setUpperCorner(Arrays.asList(upper)); return bbt;
if ("urn:ogc:def:crs:OGC:1.3:CRS84".equals(bbox.getCrs())) { bbox.setCrs("EPSG:4326"); CoordinateReferenceSystem bboxCRs = CRS.decode(bbox.getCrs()); GridCoverage2DReader reader = (GridCoverage2DReader) List<Double> lower = bbox.getLowerCorner(); List<Double> upper = bbox.getUpperCorner(); for (int i = 0; i < lower.size(); i++) { if (lower.get(i) > upper.get(i)) {
private BoundingBoxType parseBoundingBox(InputType it, Wps10Factory factory, IOParam param) { try { ReferencedEnvelope envelope = (ReferencedEnvelope) new org.geoserver.wfs.kvp.BBoxKvpParser().parse(param.value); if (envelope != null) { BoundingBoxType bbox = Ows11Factory.eINSTANCE.createBoundingBoxType(); if (envelope.getCoordinateReferenceSystem() != null) { bbox.setCrs( GML2EncodingUtils.epsgCode(envelope.getCoordinateReferenceSystem())); } List<Double> min = new ArrayList<Double>(envelope.getDimension()); List<Double> max = new ArrayList<Double>(envelope.getDimension()); for (int i = 0; i < envelope.getDimension(); i++) { min.set(i, envelope.getMinimum(i)); max.set(i, envelope.getMaximum(i)); } return bbox; } else { return null; } } catch (Exception e) { throw new WPSException("Failed to parse the bounding box", e); } }
Map<String, CRSEnvelope> boundingBoxes = new HashMap<>(); for (BoundingBoxType bbox : bboxes) { boundingBoxes.put(bbox.getCrs(), bbox2bbox(bbox));
public static CRSEnvelope bbox2bbox(BoundingBoxType bbox) { return new CRSEnvelope( bbox.getCrs(), (Double) bbox.getLowerCorner().get(0), (Double) bbox.getLowerCorner().get(1), (Double) bbox.getUpperCorner().get(0), (Double) bbox.getUpperCorner().get(1)); } }
crs = re.getCoordinateReferenceSystem(); bbox.setLowerCorner(Arrays.asList(env.getMinX(), env.getMinY())); bbox.setUpperCorner(Arrays.asList(env.getMaxX(), env.getMaxY())); } else if (org.opengis.geometry.Envelope.class.isAssignableFrom(getType())) { org.opengis.geometry.Envelope env = (org.opengis.geometry.Envelope) object; crs = env.getCoordinateReferenceSystem(); bbox.setLowerCorner(Arrays.asList(env.getLowerCorner().getCoordinate())); bbox.setUpperCorner(Arrays.asList(env.getUpperCorner().getCoordinate())); } else { throw new WPSException("Failed to convert from " + object Integer code = CRS.lookupEpsgCode(crs, false); if(code != null) { bbox.setCrs("EPSG:" + code);
private Object toTargetType(BoundingBoxType bbox) throws Exception { CoordinateReferenceSystem crs = null; if(bbox.getCrs() != null) { crs = CRS.decode(bbox.getCrs()); } double[] lower = ordinates(bbox.getLowerCorner()); double[] upper = ordinates(bbox.getUpperCorner()); if(ReferencedEnvelope.class.isAssignableFrom(getType()) || BoundingBox.class.isAssignableFrom(getType())) { return new ReferencedEnvelope(lower[0], upper[0], lower[1], upper[1], crs); } else if(Envelope.class.isAssignableFrom(getType())) { return new Envelope(lower[0], upper[0], lower[1], upper[1]); } else if(org.opengis.geometry.Envelope.class.isAssignableFrom(getType())) { GeneralEnvelope ge = new GeneralEnvelope(lower, upper); ge.setCoordinateReferenceSystem(crs); return ge; } else { throw new WPSException("Failed to convert from OWS 1.1 Bounding box type " + "to the internal representation: " + getType()); } }
crs = re.getCoordinateReferenceSystem(); bbox.setLowerCorner(Arrays.asList(env.getMinX(), env.getMinY())); bbox.setUpperCorner(Arrays.asList(env.getMaxX(), env.getMaxY())); } else if (org.opengis.geometry.Envelope.class.isAssignableFrom(getType())) { org.opengis.geometry.Envelope env = (org.opengis.geometry.Envelope) object; crs = env.getCoordinateReferenceSystem(); bbox.setLowerCorner(Arrays.asList(env.getLowerCorner().getCoordinate())); bbox.setUpperCorner(Arrays.asList(env.getUpperCorner().getCoordinate())); } else { throw new WPSException( Integer code = CRS.lookupEpsgCode(crs, false); if (code != null) { bbox.setCrs("EPSG:" + code);
private Object toTargetType(BoundingBoxType bbox) throws Exception { CoordinateReferenceSystem crs = null; if (bbox.getCrs() != null) { crs = CRS.decode(bbox.getCrs()); } double[] lower = ordinates(bbox.getLowerCorner()); double[] upper = ordinates(bbox.getUpperCorner()); if (ReferencedEnvelope.class.isAssignableFrom(getType()) || BoundingBox.class.isAssignableFrom(getType())) { return new ReferencedEnvelope(lower[0], upper[0], lower[1], upper[1], crs); } else if (Envelope.class.isAssignableFrom(getType())) { return new Envelope(lower[0], upper[0], lower[1], upper[1]); } else if (org.opengis.geometry.Envelope.class.isAssignableFrom(getType())) { GeneralEnvelope ge = new GeneralEnvelope(lower, upper); ge.setCoordinateReferenceSystem(crs); return ge; } else { throw new WPSException( "Failed to convert from OWS 1.1 Bounding box type " + "to the internal representation: " + getType()); } }
@Test public void testWCS11GetCoverageDifferentCrs() throws Exception { net.opengis.wcs11.GetCoverageType gc = Wcs11Factory.eINSTANCE.createGetCoverageType(); //xMin,yMin 5988504.35,851278.90 : xMax,yMax 7585113.55,1950872.01 //xMin,yMin -95.1193,42.2802 : xMax,yMax -71.295,53.73 CoordinateReferenceSystem logCrs = CRS.decode("EPSG:4326", false); BoundingBox bbox = new ReferencedEnvelope(42.2802, 53.73, -95.1193, -71.295, logCrs); net.opengis.ows11.BoundingBoxType wcsBbox = net.opengis.ows11.Ows11Factory.eINSTANCE.createBoundingBoxType(); wcsBbox.setLowerCorner(Arrays.asList(5988504.35d,851278.90d)); wcsBbox.setUpperCorner(Arrays.asList(7585113.55d,1950872.01d)); wcsBbox.setCrs("urn:ogc:def:crs:EPSG:3348"); net.opengis.wcs11.DomainSubsetType domainSubset = Wcs11Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setBoundingBox(wcsBbox); gc.setDomainSubset(domainSubset); CodeType c = Ows11Factory.eINSTANCE.createCodeType(); c.setValue("acme:bar"); gc.setIdentifier(c); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.1.0", gc)); assertEquals("acme:bar", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }
@Test public void test2DNoCrs() throws Exception { BoundingBoxType bbox = (BoundingBoxType) parser.parse("10,20,15,30,EPSG:4326"); assertEquals(2, bbox.getLowerCorner().size()); assertEquals(10.0, bbox.getLowerCorner().get(0)); assertEquals(20.0, bbox.getLowerCorner().get(1)); assertEquals(2, bbox.getUpperCorner().size()); assertEquals(15.0, bbox.getUpperCorner().get(0)); assertEquals(30.0, bbox.getUpperCorner().get(1)); assertEquals("EPSG:4326", bbox.getCrs()); }
@Test public void testWCS11GetCoverageDifferentCrs() throws Exception { net.opengis.wcs11.GetCoverageType gc = Wcs11Factory.eINSTANCE.createGetCoverageType(); // xMin,yMin 5988504.35,851278.90 : xMax,yMax 7585113.55,1950872.01 // xMin,yMin -95.1193,42.2802 : xMax,yMax -71.295,53.73 CoordinateReferenceSystem logCrs = CRS.decode("EPSG:4326", false); BoundingBox bbox = new ReferencedEnvelope(42.2802, 53.73, -95.1193, -71.295, logCrs); net.opengis.ows11.BoundingBoxType wcsBbox = net.opengis.ows11.Ows11Factory.eINSTANCE.createBoundingBoxType(); wcsBbox.setLowerCorner(Arrays.asList(5988504.35d, 851278.90d)); wcsBbox.setUpperCorner(Arrays.asList(7585113.55d, 1950872.01d)); wcsBbox.setCrs("urn:ogc:def:crs:EPSG:3348"); net.opengis.wcs11.DomainSubsetType domainSubset = Wcs11Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setBoundingBox(wcsBbox); gc.setDomainSubset(domainSubset); CodeType c = Ows11Factory.eINSTANCE.createCodeType(); c.setValue("acme:bar"); gc.setIdentifier(c); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.1.0", gc)); assertEquals("acme:bar", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }
@Test public void test3DNoCrs() throws Exception { BoundingBoxType bbox = (BoundingBoxType) parser.parse("10,20,15,30,40,50,EPSG:4979"); assertEquals(3, bbox.getLowerCorner().size()); assertEquals(10.0, bbox.getLowerCorner().get(0)); assertEquals(20.0, bbox.getLowerCorner().get(1)); assertEquals(15.0, bbox.getLowerCorner().get(2)); assertEquals(3, bbox.getUpperCorner().size()); assertEquals(30.0, bbox.getUpperCorner().get(0)); assertEquals(40.0, bbox.getUpperCorner().get(1)); assertEquals(50.0, bbox.getUpperCorner().get(2)); assertEquals("EPSG:4979", bbox.getCrs()); }
@Test public void testWCS11GetCoverage() throws Exception { net.opengis.wcs11.GetCoverageType gc = Wcs11Factory.eINSTANCE.createGetCoverageType(); CoordinateReferenceSystem crs = CRS.decode("EPSG:4326"); GeneralEnvelope env = new GeneralEnvelope(new double[]{48.2, -123.4}, new double[]{50.1, -120.9}); env.setCoordinateReferenceSystem(crs); BoundingBox bbox = new ReferencedEnvelope(env); net.opengis.ows11.BoundingBoxType wcsBbox = net.opengis.ows11.Ows11Factory.eINSTANCE.createBoundingBoxType(); wcsBbox.setLowerCorner(Arrays.asList(48.2d, -123.4d)); wcsBbox.setUpperCorner(Arrays.asList(50.1d, -120.9d)); //wcsBbox.setCrs("urn:ogc:def:crs:OGC:1.3:CRS84"); wcsBbox.setCrs("urn:ogc:def:crs:EPSG:4326"); net.opengis.wcs11.DomainSubsetType domainSubset = Wcs11Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setBoundingBox(wcsBbox); gc.setDomainSubset(domainSubset); CodeType c = Ows11Factory.eINSTANCE.createCodeType(); c.setValue("acme:bar"); gc.setIdentifier(c); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.1.0", gc)); assertEquals("acme:bar", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }