コード例 #1
0
 def handleRouteUploadRequest(self, requestparam, rfile, flen):
     fname = self.getRequestParam(requestparam, "filename")
     AVNLog.debug("route upload request for %s", fname)
     if flen > self.MAXROUTESIZE:
         raise Exception("route is to big, max allowed filesize %d: " %
                         self.MAXROUTESIZE)
     try:
         data = rfile.read(flen)
         parser = gpxparser.GPXParser(data)
         gpx = parser.parse()
         if gpx.routes is None or len(gpx.routes) == 0:
             raise "no routes in " + fname
         route = gpx.routes[0]
         if route is None:
             raise Exception("no route found in file")
         rinfo = self.routeInfos.get(route.name)
         if rinfo is not None:
             raise Exception("route with name " + route.name +
                             " already exists")
         rinfo = AVNRouteInfo.fromRoute(route, AVNUtil.utcnow())
         self.routeInfos[route.name] = rinfo
         self.saveRoute(route)
         return
     except Exception as e:
         raise Exception("exception parsing " + fname + ": " + e.message)
コード例 #2
0
 def loadRouteFile(self, filename):
     f = open(filename, "r")
     gpx_xml = f.read()
     f.close()
     parser = gpxparser.GPXParser(gpx_xml)
     gpx = parser.parse()
     if gpx.routes is None or len(gpx.routes) == 0:
         raise "no routes in " + filename
     return gpx.routes[0]
コード例 #3
0
 def fillInfo(self, baseDir):
     routeFile = os.path.join(baseDir, self.name)
     try:
         if os.path.isfile(routeFile):
             content = ""
             with open(routeFile, "r", encoding='utf-8') as f:
                 content = f.read()
             parser = gpxparser.GPXParser(content)
             gpx = parser.parse()
             if gpx.routes is None or len(gpx.routes) == 0:
                 AVNLog.error("no routes in %s", routeFile)
             else:
                 route = gpx.routes[0]
                 self.numpoints = len(route.points)
                 self.length = route.length() / AVNUtil.NM
     except Exception as e:
         AVNLog.error("error when parsing route %s: %s", routeFile, str(e))