X-Git-Url: https://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fload%2Fxml%2FGpxHandler.java;h=225a667870033caa90b3a681e71f923a412a5887;hb=0a2480df5845e2d7190dfdec9b2653b1609e853d;hp=962b495741909fb0e46c1fc07c62c254df18a3d1;hpb=5625a1abadb5f2ca5f017fe7dbda1d5141cb637b;p=GpsPrune.git diff --git a/tim/prune/load/xml/GpxHandler.java b/tim/prune/load/xml/GpxHandler.java index 962b495..225a667 100644 --- a/tim/prune/load/xml/GpxHandler.java +++ b/tim/prune/load/xml/GpxHandler.java @@ -6,6 +6,7 @@ import org.xml.sax.Attributes; import org.xml.sax.SAXException; import tim.prune.data.Field; +import tim.prune.load.TrackNameList; /** @@ -13,13 +14,20 @@ import tim.prune.data.Field; */ public class GpxHandler extends XmlHandler { - private boolean _insideName = false; - private boolean _insideElevation = false; - private boolean _insideTime = false; - private String _name = null, _latitude = null, _longitude = null; - private String _elevation = null; - private String _time = null; - private ArrayList _pointList = new ArrayList(); + private boolean _insidePoint = false; + private boolean _insideWaypoint = false; + private boolean _startSegment = true; + private boolean _isTrackPoint = false; + private int _trackNum = -1; + private GpxTag _name = new GpxTag(), _trackName = new GpxTag(); + private String _latitude = null, _longitude = null; + private GpxTag _elevation = new GpxTag(), _time = new GpxTag(); + private GpxTag _type = new GpxTag(), _description = new GpxTag(); + private GpxTag _link = new GpxTag(); + private GpxTag _currentTag = null; + private ArrayList _pointList = new ArrayList(); + private ArrayList _linkList = new ArrayList(); + private TrackNameList _trackNameList = new TrackNameList(); /** @@ -27,33 +35,54 @@ public class GpxHandler extends XmlHandler * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes) */ public void startElement(String uri, String localName, String qName, - Attributes attributes) throws SAXException + Attributes attributes) throws SAXException { // Read the parameters for waypoints and track points - if (qName.equalsIgnoreCase("wpt") || qName.equalsIgnoreCase("trkpt")) + String tag = qName.toLowerCase(); + if (tag.equals("wpt") || tag.equals("trkpt") || tag.equals("rtept")) { - int numAttributes = attributes.getLength(); + _insidePoint = true; + _insideWaypoint = tag.equals("wpt"); + _isTrackPoint = tag.equals("trkpt"); + final int numAttributes = attributes.getLength(); for (int i=0; i