Add branding support.

debian-sid
Tom Payne 15 years ago
parent 6b8ae2353f
commit 8bf8420384

@ -1,7 +1,6 @@
HIGH
Check indexes in thermal folder
Check indexes in colored tracklogs
Add logo
MEDIUM
Test performance of igc2kml.kml using ElementTree

@ -50,6 +50,9 @@ def main(argv):
parser = optparse.OptionParser(usage='Usage: %prog [options]', description="IGC to Google Earth converter")
parser.add_option('-o', '--output', metavar='FILENAME')
parser.add_option('-z', '--timezone-offset', metavar='HOURS', type='int')
parser.add_option('-b', '--brand-name', metavar='STRING', type='string')
parser.add_option('-l', '--brand-logo', metavar='URL', type='string')
parser.add_option('-u', '--brand-url', metavar='URL', type='string')
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)
@ -70,7 +73,8 @@ def main(argv):
raise RuntimeError # FIXME
if len(args) != 1:
raise RuntimeError # FIXME
igc2kmz.flights2kmz(options.flights, timezone_offset=options.timezone_offset).write(options.output)
igc2kmz.flights2kmz(options.flights, brand_name=options.brand_name, brand_logo=options.brand_logo, brand_url=options.brand_url, timezone_offset=options.timezone_offset).write(options.output)
if __name__ == '__main__':
main(sys.argv)

@ -468,7 +468,17 @@ class Flight(object):
folder.add(self.make_time_marks_folder(globals))
return folder
def flights2kmz(flights, timezone_offset=0):
def make_brand(name, logo, url):
icon = kml.Icon(href=logo)
overlay_xy = kml.overlayXY(x=0.5, y=1, xunits='fraction', yunits='fraction')
screen_xy = kml.screenXY(x=0.5, y=1, xunits='fraction', yunits='fraction')
size = kml.size(x=0, y=0, xunits='fraction', yunits='fraction')
description = '<center><p><a href="%(url)s"><img alt="%(name)s" src="%(logo)s" /></a></p><p><large><a href="%(url)s">%(name)s</a></large></p><p><small>Created by <a href="http://github.com/twpayne/igc2kmz/master/tree">igc2kmz</a> Copyright &copy; Tom Payne 2008</a></small></p></center>' % {'name': name, 'logo': logo, 'url': url}
return kml.ScreenOverlay(icon, overlay_xy, screen_xy, size, kml.Snippet(), name=name, description=kml.CDATA(description))
def flights2kmz(flights, brand_name=None, brand_logo=None, brand_url=None, timezone_offset=0):
stock = Stock()
globals = util.OpenStruct()
globals.stock = stock
@ -496,6 +506,8 @@ def flights2kmz(flights, timezone_offset=0):
globals.graph_height = 300
result = kmz.kmz()
result.add_siblings(stock.kmz)
if brand_name and brand_logo and brand_url:
result.add_roots(make_brand(brand_name, brand_logo, brand_url))
for flight in flights:
result.add_siblings(flight.to_kmz(globals))
return result

Loading…
Cancel
Save