def main():

    domain = Domain()

    # Parse command line arguments
    parser = argparse.ArgumentParser(description=__doc__)
    utils.add_standard_command_options(parser)

    parser.add_argument(
        '--site',
        action='store', dest='site',
        help='APUB-site',
    )

    # parser.add_argument(
    #     '-i', required=True,
    #     action='store', dest='res',
    #     help='.RES file of the input result',
    # )

    # parser.add_argument(
    #     '--ext', required=True,
    #     action='store', dest='ext',
    #     help='ext for the result field to be exported',
    # )

    # parser.add_argument(
    #     '-d', '--date',
    #     action="store", dest='date',
    #     type=lambda s: datetime.datetime.strptime(s, '%y%m%d%H'),
    #     help="Time stamp to show 'YYMMDDhh, " +
    #     "default is first timestamp of result'"
    # )

    # parser.add_argument(
    #     '--substance',
    #     action='store', dest='substance',
    #     help='Substance/ext for the result field to be imported',
    # )

    parser.add_argument(
        '--areaid',
        action='store', dest='areaid',
        help='Area id'
    )

    args = parser.parse_args()

    site = os.environ.get("SITE", None) or args.site
    if site is None:
        log.error("No apub site specified")
        sys.exit(1)

    with open(path.join('/var/www/html',
                        site,
                        'gmapgridoverlay.htm')) as html_template:
        template = Template(html_template.read())

    rf = ControlFile(
        path.join(os.environ["RSRCDIR"],
                  "apub." + site + ".gmapgridoverlay.rf"),
	"HP Roman8"
    )

    form = cgi.FieldStorage()
    viewports = domain.listViewports()
    areaid = form.getfirst('areaid', None)
    if areaid is not None:
        areaid = cgi.escape(areaid)
    areaid = areaid or \
        args.areaid or \
        viewports[0]

    viewport = ViewPort()
    viewport.read(code=areaid)
    proj = get_proj4(viewport.proj)
    data = get_latlon_bounds(
            viewport.xmin(),
            viewport.ymin(),
            viewport.xmax(),
            viewport.ymax(),
            proj)

    print(template.substitute(data))
def main():
    #-----------Setting up and unsing option parser-----------------------
    parser=OptionParser(usage= usage, version=version)
    
    parser.add_option("-u",'--user',
                      action="store",dest="user",
                      help="Name of target edb user")

    parser.add_option("-e","--edb",
                      action="store",dest="edb",
                      help="Name of target edb")

    parser.add_option("-v","--viewports",
                      action="store",dest="viewports",
                      help="Comma-separated list of area id's to be cut out, default is all")

    parser.add_option("-y","--year",
                      action="store",dest="year",
                      help="Cut out for given year")
    
    parser.add_option("-l", "--loglevel",
                      action="store",dest="loglevel",default=2,
                      help="Sets the loglevel (0-3 where 3=full logging)")

    parser.add_option("-s","--suffix",
                      action="store",dest="suffix",default="v1",
                      help="Sets suffix to names of generated edb's to support version management, default is 'v1'")

    (options, args) = parser.parse_args()


    
    #--------------------Init logger-----------------------
    rootLogger = logger.RootLogger(level=options.loglevel)
    global log
    log = rootLogger.getLogger(sys.argv[0])

    #-----------------Validating options-------------------

    if options.user is None:
        log.error("Need to specify -u <user>")
        return 1
    if options.edb is None:
        log.error("Need to specify -e <edb>")
        return 1
    if options.year is None:
        log.error("Need to specify -y <year>")
        return 1
    if len(options.suffix)>4:
        log.error("Limit your suffix length to 4 characters")
        return 1

    if len(options.year)!=4:
        log.error("Year should be given with four digits")
        return 1

    dmn=Domain()
    viewports=[]
    if options.viewports is not None:        
        viewportIds=options.viewports.split(",")
    else:
        viewportIds=dmn.listViewports()
    for vpId in viewportIds:
        vp=ViewPort()
        vp.read(path.join(dmn.wndPath(),"modell.par"),vpId)
        viewports.append(vp)
    
    edb=Edb(dmn,options.user,options.edb)

    log.info("Reading sourcedb...")
    sourcedb=Sourcedb(edb)
    sourcedb.read()

    log.info("Reading emfacdb...")
    emfacdb=Emfacdb(edb)
    emfacdb.read()

    log.info("Reading subdb...")
    subdb=Subdb(edb)
    subdb.read()
    
    edbDotRsrc=edb.rsrcPath()
    
    for vpInd,vp in enumerate(viewports):        
        targetEdbName=vp.code+"_"+options.year+"_"+options.suffix     
        tEdb=Edb(dmn,options.user,targetEdbName)
        if tEdb.exists():
            log.info("Edb %s already exists, remove first to update" %targetEdbName)
            continue
        tEdb.create(edbRsrc=edbDotRsrc)
        log.info("Created empty edb %s" %targetEdbName)

        subdb.setEdb(tEdb)
        subdb.write()
        log.info("Wrote searchkeys")

        emfacdb.setEdb(tEdb)        
        emfacdb.write()
        log.info("Wrote emfacdb")
        
        tSourcedb=Sourcedb(tEdb)        
        
        log.info("Cutting out viewport %s (%i/%i)" %(vp.code,vpInd+1,len(viewports)))
        for srcInd,src in enumerate(sourcedb.sources):
            if includeShip(src,vp.code,src["Y1"],options.year):
                log.debug("Ship %i/%i included in %s" %(srcInd+1,len(sourcedb.sources),tEdb.name))
                tSourcedb.sources.append(src)
        tSourcedb.write()
        log.info("Wrote exatracted sources to %s" %tEdb.name)
        tEdb.setDesc("This edb has been extracted from %s under user %s, " %(edb.name,edb.user)+
                            "and includes all ships that have visited the map area %s (%s) during %s\n" %(vp.code,vp.name,options.year))
    log.info("Finished!")
    return 0