X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fload%2Fxml%2FGpxHandler.java;h=4208014e44c1e9e8c9df262c0caa3083f3bd76f3;hb=649c5da6ee1bbc590699e11a92316ece2ea8512d;hp=b4ae07a4e662c719d80b7b242be0519cbc532472;hpb=1ee49ae3c8ef3aa2e63eadd458531e5f8bd4f92c;p=GpsPrune.git diff --git a/tim/prune/load/xml/GpxHandler.java b/tim/prune/load/xml/GpxHandler.java index b4ae07a..4208014 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,17 +14,21 @@ import tim.prune.data.Field; */ public class GpxHandler extends XmlHandler { + private boolean _insidePoint = false; private boolean _insideWaypoint = false; - private boolean _insideName = false; - private boolean _insideElevation = false; - private boolean _insideTime = false; - private boolean _insideType = false; private boolean _startSegment = true; - private String _name = null, _latitude = null, _longitude = null; - private String _elevation = null; - private String _time = null; - private String _type = null; + 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(); + /** * Receive the start of a tag @@ -33,41 +38,52 @@ public class GpxHandler extends XmlHandler Attributes attributes) throws SAXException { // Read the parameters for waypoints and track points - if (qName.equalsIgnoreCase("wpt") || qName.equalsIgnoreCase("trkpt") || qName.equalsIgnoreCase("rtept")) + String tag = qName.toLowerCase(); + if (tag.equals("wpt") || tag.equals("trkpt") || tag.equals("rtept")) { - _insideWaypoint = qName.equalsIgnoreCase("wpt"); - int numAttributes = attributes.getLength(); + _insidePoint = true; + _insideWaypoint = tag.equals("wpt"); + _isTrackPoint = tag.equals("trkpt"); + final int numAttributes = attributes.getLength(); for (int i=0; i