Output unindented KML by default, add --debug option to enable indented output.

debian-sid
Tom Payne 15 years ago
parent 0d324bb2c4
commit e41e1db4a2

@ -52,6 +52,7 @@ def main(argv):
parser.add_option('-o', '--output', metavar='FILENAME')
parser.add_option('-z', '--timezone-offset', metavar='HOURS', type='int')
parser.add_option('-r', '--root', metavar='FILENAME', type='string', action='append', dest='roots')
parser.add_option('--debug', action='store_true')
group = optparse.OptionGroup(parser, 'Per-flight options')
group.add_option('-i', '--igc', metavar='FILENAME', type='string', action='callback', callback=add_flight)
group.add_option('-n', '--pilot-name', metavar='STRING', type='string', action='callback', callback=add_flight_option)
@ -64,6 +65,7 @@ def main(argv):
group.add_option('-p', '--photo', metavar='FILENAME', type='string', action='callback', callback=add_flight_photo)
group.add_option('-d', '--description', metavar='STRING', type='string', action='callback', callback=add_flight_photo_option)
parser.add_option_group(group)
parser.set_defaults(debug=False)
parser.set_defaults(output='igc2kmz.kmz')
parser.set_defaults(roots=[])
parser.set_defaults(timezone_offset=0)
@ -73,7 +75,8 @@ def main(argv):
parser.error('no flights specified')
if len(args) != 1:
parser.error('extra arguments on command line')
igc2kmz.flights2kmz(options.flights, roots=[igc2kmz.kml.Verbatim(open(root).read()) for root in options.roots], timezone_offset=options.timezone_offset).write(options.output)
kmz = igc2kmz.flights2kmz(options.flights, roots=[igc2kmz.kml.Verbatim(open(root).read()) for root in options.roots], timezone_offset=options.timezone_offset)
kmz.write(options.output, debug=options.debug)
if __name__ == '__main__':

@ -16,7 +16,10 @@
import datetime
from cStringIO import StringIO
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
import zipfile
import kml
@ -59,14 +62,17 @@ class kmz(object):
self.elements.append(kml.__dict__[key](value))
return self
def write(self, filename):
def write(self, filename, debug=False):
date_time = datetime.datetime.now().timetuple()[:6]
zf = zipfile.ZipFile(filename, 'w')
document = kml.Document(open=1)
document.add(*self.roots)
document.add(*self.elements)
string_io = StringIO()
kml.kml('2.1', document).pretty_write(string_io)
if debug:
kml.kml('2.1', document).pretty_write(string_io)
else:
kml.kml('2.1', document).write(string_io)
zi = zipfile.ZipInfo('doc.kml')
zi.compress_type = zipfile.ZIP_DEFLATED
zi.date_time = date_time

Loading…
Cancel
Save