]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/commitdiff
Added checks for elevation.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Fri, 4 Dec 2009 22:04:09 +0000 (22:04 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Fri, 4 Dec 2009 22:04:09 +0000 (22:04 +0000)
git-svn-id: http://www.winterrodeln.org/svn/servermediawiki/trunk/wradmin@540 7aebc617-e5e2-0310-91dc-80fb5f6d2477

wradmin/wradmin/lib/wrgpx.py

index f1ae3bd82d616ba9a420080dc4866b83059050da..8efb2e67af1bf8bf25988209b2b5309cbc49013f 100644 (file)
@@ -34,6 +34,8 @@ class Waypoint:
                self.ele = None            # height as float value or None
                self.name = None           # name as string or None
                self.type = None           # type as string or None
+       def __repr__(self):
+               return u"Waypoint %s" % unicode(self.name)
 
 
 class Track:
@@ -41,6 +43,8 @@ class Track:
                self.name = None           # name as string or None
                self.type = None           # type as string or None
                self.points = []           # one point is a tuple (lat, lon, ele) or (lat, lon, None)
+       def __repr__(self):
+               return u"Track %s" % unicode(self.name)
 
 
 class WrGpx:
@@ -48,6 +52,8 @@ class WrGpx:
                self.metadata = MetaData()
                self.waypoints = []
                self.tracks = []
+       def __repr__(self):
+               return "WrGpx (%d waypoints; %d tracks)" % (len(self.waypoints), len(self.tracks))
 
 
 class Hint:
@@ -56,6 +62,8 @@ class Hint:
                self.message = message
                self.level = level
                self.line_nr = line_nr
+       def __repr__(self):
+               return "Hint: %s" % self.message
 
 
 def parse_wrgpx(filename=None, string=None):
@@ -118,6 +126,7 @@ def parse_wrgpx(filename=None, string=None):
                elif element.tag == ns+'wpt':
                        waypoint = parse_wpt(element)
                        wrgpx.waypoints.append(waypoint)
+                       if waypoint.ele is None: hints.append(Hint(u"Elevation of waypoint '%s' should be given" % unicode(waypoint), 1))
 
                # Routes
                elif element.tag == ns+'rte':
@@ -132,11 +141,14 @@ def parse_wrgpx(filename=None, string=None):
                                elif el.tag == ns+'link': track.link = el.attrib['href']
                                elif el.tag == ns+'type': track.type = el.text
                                elif el.tag == ns+'trkseg': 
+                                       no_ele = 0
                                        for e in el:
                                                if e.tag == ns+'trkpt':
                                                        trkpt = parse_wpt(e)
                                                        track.points.append((trkpt.lat, trkpt.lon, trkpt.ele))
+                                                       if trkpt.ele is None: no_ele += 1
                                                elif e.tag == ns+'extensions': hints.append(Hint("XML element extensions within XML element trkpt is not used by WRGPX.", 1))
+                                       if no_ele > 0: hints.append(Hint(u"%d of %d track points have not elevation (%s)" % (no_ele, len(track.points), unicode(track)), 1))
                        wrgpx.tracks.append(track)
 
                # Extensions