package com.androidol.util.xml;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import com.androidol.feature.Vector;
import com.androidol.projection.Projection;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Point;
public class GeoRSSSAXHandler extends XMLSAXHandler {
private boolean inPointElement = false;
@Override
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
if(localName.equals("point")) {
//Util.printDebugMessage(" ...element <point> start tag found under namespace " + namespaceURI + "...");
this.inPointElement = true;
}
}
@Override
public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
if(localName.equals("point")) {
//Util.printDebugMessage(" ...element <point> end tag found under namespace " + namespaceURI + "...");
this.inPointElement = false;
}
}
@Override
public void characters(char[] ch, int start, int length) {
if(this.inPointElement == true) {
String coordinateString = new String(ch, start, length);
//Util.printDebugMessage(coordinateString);
String[] coordinates = coordinateString.split(" ");
double lat = Double.valueOf(coordinates[0]);
double lon = Double.valueOf(coordinates[1]);
Point point = Projection.wgs84ToSphericalMercator(this.geometryFactory.createPoint(new Coordinate(lon, lat)));
this.parsedGeometries.add(point);
Vector feature = new Vector(point, null, null);
this.parsedFeatures.add(feature);
}
}
}