# HG changeset patch # User George Stamoulis # Date 1423672309 -7200 # Node ID 6a0a8fe14ea60974002b478c27223088c4fc75a2 # Parent 1360d4f25440e5c18e659228bc94a3649983c75f Added a function in JTSWrapper.java to read the SRID of a geometry, if it is provided as gmlLiteral. diff -r 1360d4f25440 -r 6a0a8fe14ea6 evaluation/src/main/java/org/openrdf/query/algebra/evaluation/util/JTSWrapper.java --- a/evaluation/src/main/java/org/openrdf/query/algebra/evaluation/util/JTSWrapper.java Wed Feb 11 11:59:24 2015 +0200 +++ b/evaluation/src/main/java/org/openrdf/query/algebra/evaluation/util/JTSWrapper.java Wed Feb 11 18:31:49 2015 +0200 @@ -198,16 +198,32 @@ * @throws JAXBException */ public Geometry GMLread(String gml) throws JAXBException { - StringReader reader = new StringReader(gml); - + StringReader reader = new StringReader(gml); + JAXBContext context = JAXBContext.newInstance("org.jvnet.ogc.gml.v_3_1_1.jts"); Unmarshaller unmarshaller = context.createUnmarshaller(); Geometry geometry = (Geometry) unmarshaller.unmarshal(reader); reader.close(); + + //get the geometry srdi from the xml input + geometry.setSRID(getSRIDfromGMLString(gml)); + return geometry; } + /** + * Parse the gml string to find the SRID of the represented geometry. + * + * @param gml + * @return + */ + private int getSRIDfromGMLString(String gml) { + String[] srs = gml.split("srsName=\"http://www.opengis.net/def/crs/EPSG/0/"); + String[] num = srs[1].split("\""); + return Integer.parseInt(num[0]); + } + public synchronized String GMLWrite(Geometry geom) { return gmlw.write(geom); } diff -r 1360d4f25440 -r 6a0a8fe14ea6 resultio-spatial/sparqlkml/src/main/java/org/openrdf/query/resultio/sparqlkml/stSPARQLResultsKMLWriter.java --- a/resultio-spatial/sparqlkml/src/main/java/org/openrdf/query/resultio/sparqlkml/stSPARQLResultsKMLWriter.java Wed Feb 11 11:59:24 2015 +0200 +++ b/resultio-spatial/sparqlkml/src/main/java/org/openrdf/query/resultio/sparqlkml/stSPARQLResultsKMLWriter.java Wed Feb 11 18:31:49 2015 +0200 @@ -163,7 +163,6 @@ try { // keep the order of binding names this.bindingNames = bindingNames; - //System.out.println("ALL BINDING NAMES: " + this.bindingNames.toString()); xmlWriter.startDocument(); xmlWriter.setAttribute("xmlns", NAMESPACE); @@ -219,18 +218,14 @@ xmlWriter.textElement(NAME_TAG, "Result" + nresults); // parse binding set - for (String bindingName : bindingNames) { - //System.out.println("@@ Current binding name: " + bindingName); - + for (String bindingName : bindingNames) { Binding binding = bindingSet.getBinding(bindingName); - //System.out.println("New Binding: " + binding.getName() + "\n value: " + binding.getValue().stringValue()); if(binding != null) { Value value = binding.getValue(); // check for geometry value if (XMLGSDatatypeUtil.isGeometryValue(value)) { - //System.out.println("geometry FOUND"); hasGeometry=true; if (logger.isDebugEnabled()) { @@ -240,7 +235,6 @@ xmlWriter.unescapedText(getKML(value)); } else { // URI, BlankNode, or Literal other than spatial literal - //System.out.println("URI, BlankNode, or Literal other than spatial literal FOUND"); if (logger.isDebugEnabled()) { logger.debug("[Strabon.KMLWriter] Found URI/BlankNode/Literal ({}): {}", value.getClass(), value); } @@ -361,7 +355,6 @@ } else { // GML geom = jts.GMLread(geomRep); srid = geom.getSRID(); - System.out.println("SRDI: " + srid + "\nGEOMETRY : " + geom.toText()); } }