public void characters(char[] ch, int start, int length) throws SAXException { if (placemarkactive && !CollectionUtils.intersection(visits, LEGALNAMES).isEmpty()) { if (currGeomHandler != null) { currGeomHandler.characters(ch, start, length); } else { String content = new String(ch, start, length).trim(); if (content.length() > 0) { lastEltData += content; // System.out.println(lastEltName + "= " + content); } } } }
/** * SAX handler. Handle state and state transitions based on an element starting. * * @param uri Description of the Parameter * @param name Description of the Parameter * @param qName Description of the Parameter * @param atts Description of the Parameter * @exception SAXException Description of the Exception */ public void startElement(String uri, String name, String qName, Attributes atts) throws SAXException { if (name.equals("Placemark")) { placemarkactive = true; row = new GeoTiffResultRow(); // new row result; } visits.add(name); if (placemarkactive && !CollectionUtils.intersection(visits, LEGALNAMES).isEmpty()) { // if (name.equalsIgnoreCase(GMLConstants.GML_POLYGON) // || name.equalsIgnoreCase(GMLConstants.GML_POINT) // || name.equalsIgnoreCase(GMLConstants.GML_MULTI_GEOMETRY)) { if (name.equalsIgnoreCase(GMLConstants.GML_MULTI_GEOMETRY)) { currGeomHandler = new GMLHandler(fact, null); } if (currGeomHandler != null) currGeomHandler.startElement(uri, name, qName, atts); if (currGeomHandler == null) { lastEltName = name; // System.out.println(name); } } }
/** * SAX handler - handle state information and transitions based on ending elements. * * @param uri Description of the Parameter * @param name Description of the Parameter * @param qName Description of the Parameter * @exception SAXException Description of the Exception */ @SuppressWarnings({"unused", "unchecked"}) public void endElement(String uri, String name, String qName) throws SAXException { // System.out.println("/" + name); // System.out.println("the ena name="+name); if (placemarkactive && !CollectionUtils.intersection(visits, LEGALNAMES).isEmpty() && currGeomHandler == null && !lastEltData.isEmpty()) { // System.out.println(lastEltName + " " + lastEltData); row.addPair(lastEltName, lastEltData); } lastEltData = ""; if (name.equals("Placemark")) { placemarkactive = false; try { row.addPair(GeoTiffReader2.this.primarykey, KeyGenerator.Generate()); } catch (Exception e) { e.printStackTrace(); System.exit(0); } GeoTiffReader2.this.results.add(row); } visits.remove(name); if (currGeomHandler != null) { currGeomHandler.endElement(uri, name, qName); if (currGeomHandler.isGeometryComplete()) { Geometry g = currGeomHandler.getGeometry(); WKTWriter wkt_writer = new WKTWriter(); GMLWriter gml_writer = new GMLWriter(); if (g.getClass().equals(com.vividsolutions.jts.geom.Point.class)) { Point geometry = (com.vividsolutions.jts.geom.Point) g; row.addPair("isEmpty", geometry.isEmpty()); row.addPair("isSimple", geometry.isSimple()); row.addPair("dimension", geometry.getCoordinates().length); row.addPair("coordinateDimension", geometry.getCoordinates().length); row.addPair("spatialDimension", geometry.getDimension()); // spatialdimension // <= // dimension // System.out.println(geometry.getCoordinate().x + " " // +geometry.getCoordinate().z); // System.out.println(geometry.get .getSRID()); // CRS. String crs = "2311"; if (crs == null) { System.err.println("No SRID specified. Aborting..."); System.exit(-1); } row.addPair( "asWKT", "<http://www.opengis.net/def/crs/EPSG/0/" + crs + ">" + wkt_writer.write(geometry)); row.addPair( "hasSerialization", "<http://www.opengis.net/def/crs/EPSG/0/" + crs + ">" + wkt_writer.write(geometry)); // newrow.addPair("hasSerialization", // wkt_writer.write(geometry)); gml_writer.setSrsName(crs); row.addPair("asGML", gml_writer.write(geometry).replaceAll("\n", " ")); row.addPair("is3D", geometry.getDimension() == 3); } else { GeometryCollection geometry = (GeometryCollection) g; row.addPair("isEmpty", geometry.isEmpty()); row.addPair("isSimple", geometry.isSimple()); row.addPair("dimension", geometry.getCoordinates().length); row.addPair("coordinateDimension", geometry.getCoordinates().length); row.addPair("spatialDimension", geometry.getDimension()); // spatialdimension // <= // dimension // System.out.println(geometry.getCoordinate().x + " " // +geometry.getCoordinate().z); // System.out.println(geometry.get .getSRID()); // CRS. String crs = "2323"; if (crs == null) { System.err.println("No SRID specified. Aborting..."); System.exit(-1); } // geometry.getNumPoints(); // TODO spatialDimension?????? // TODO coordinateDimension?????? // Geometry geometry1= // (Geometry)sourceGeometryAttribute.getValue(); // geometry1.transform(arg0, arg1) // sourceGeometryAttribute.ge row.addPair( "asWKT", "<http://www.opengis.net/def/crs/EPSG/0/" + crs + ">" + wkt_writer.write(geometry)); row.addPair( "hasSerialization", "<http://www.opengis.net/def/crs/EPSG/0/" + crs + ">" + wkt_writer.write(geometry)); // newrow.addPair("hasSerialization", // wkt_writer.write(geometry)); gml_writer.setSrsName("http://www.opengis.net/def/crs/EPSG/0/" + crs); row.addPair("asGML", gml_writer.write(geometry).replaceAll("\n", " ")); row.addPair("is3D", geometry.getDimension() == 3); } // System.out.println(g); // System.out.println(ww.write(g)); geoms.add(g); // reset to indicate no longer parsing geometry currGeomHandler = null; } } }
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { if (currGeomHandler != null) currGeomHandler.ignorableWhitespace(ch, start, length); }