示例#1
0
文件: pykmaze.py 项目: zyphos/pykmaze
    def export_track(self, track, filename, filetype, trim=None, prepend_datetime=False, zoffset=0, mode="default"):
        # filetype 'gpx', 'kmz' or 'km'
        if filetype not in ["kmz", "kml", "gpx"]:
            raise AssertionError("Unsupported filetype %s" % filetype)

        track_info = self.get_trackinfo(track)
        tpoints = self.get_trackpoints(track_info)
        if prepend_datetime:
            stime = time.localtime(track_info["start"])
            filename = os.path.join(
                os.path.dirname(filename), time.strftime("%Y-%m-%d-%H-%M-%S-", stime) + os.path.basename(filename)
            )

        is_km = filetype in ["kmz", "kml"]
        if is_km:
            from kml import KmlDoc
        if filetype == "gpx":
            from gpx import GpxDoc

        if trim:
            tpoints = trim_trackpoints(track_info, tpoints, trim)

        optpoints = optimize(tpoints, 0)
        self.log.info("Count: %u, opt: %u", len(tpoints), len(optpoints))
        if is_km:
            kml = KmlDoc(os.path.splitext(os.path.basename(filename))[0])
            kml.add_trackpoints(optpoints, int(zoffset), extrude="air" not in mode)
        if filetype == "kmz":
            import zipfile
            import cStringIO as StringIO

            out = StringIO.StringIO()
            kml.write(out)
            out.write("\n")
            z = zipfile.ZipFile(filename, "w", zipfile.ZIP_DEFLATED)
            z.writestr("doc.kml", out.getvalue())
        if filetype == "kml":
            with open(filename, "wt") as out:
                kml.write(out)
                out.write("\n")

        if filetype == "gpx":
            gpx = GpxDoc(os.path.splitext(os.path.basename(filename))[0], track_info["start"])
            gpx.add_trackpoints(optpoints, int(zoffset))
            with open(filename, "wt") as out:
                gpx.write(out)
                out.write("\n")
示例#2
0
文件: pykmaze.py 项目: eblot/pykmaze
 if options.gpx:
     from gpx import GpxDoc
     
 if km or options.gpx:
     track_info = filter(lambda x: x['track'] == track, 
                         tpcat)[0]
     if options.trim:
         trims = parse_trim(options.trim.split(','))
         log.info('All points: %d' % len(tpoints))
         tpoints = trim_trackpoints(track_info, tpoints, trims)
         log.info('Filtered points: %d' % len(tpoints))
     optpoints = optimize(tpoints, 0)
     log.info('Count: %u, opt: %u', 
               len(tpoints), len(optpoints))
 if km:
     kml = KmlDoc(os.path.splitext(os.path.basename(km))[0])
     kml.add_trackpoints(optpoints, int(options.zoffset), 
                         extrude='air' not in options.mode)
 if options.kmz:
     import zipfile
     import cStringIO as StringIO
     out = StringIO.StringIO()
     kml.write(out)
     out.write('\n')
     z = zipfile.ZipFile(options.kmz, 'w', 
                         zipfile.ZIP_DEFLATED)
     z.writestr('doc.kml', out.getvalue())
 if options.kml:
     with open(options.kml, 'wt') as out:
         kml.write(out)
         out.write('\n')
示例#3
0
 if options.gpx:
     from gpx import GpxDoc
     
 if km or options.gpx:
     track_info = filter(lambda x: x['track'] == track, 
                         tpcat)[0]
     if options.trim:
         trims = parse_trim(options.trim.split(','))
         log.info('All points: %d' % len(tpoints))
         tpoints = trim_trackpoints(track_info, tpoints, trims)
         log.info('Filtered points: %d' % len(tpoints))
     optpoints = optimize(tpoints, 0)
     log.info('Count: %u, opt: %u', 
               len(tpoints), len(optpoints))
 if km:
     kml = KmlDoc(os.path.splitext(os.path.basename(km))[0])
     kml.add_trackpoints(optpoints, int(options.zoffset), 
                         extrude='air' not in options.mode)
 if options.kmz:
     import zipfile
     import cStringIO as StringIO
     out = StringIO.StringIO()
     kml.write(out)
     out.write('\n')
     z = zipfile.ZipFile(options.kmz, 'w', 
                         zipfile.ZIP_DEFLATED)
     z.writestr('doc.kml', out.getvalue())
 if options.kml:
     with open(options.kml, 'wt') as out:
         kml.write(out)
         out.write('\n')