예제 #1
0
def generateRegion(region):
    #fisrt lets see if the gemf is there
    
    print "generating data for " + region
    filter = Regions.getRegionFilterList(region)
    bo = BsbOutlines.BsbOutlines(Env.bsbDir, filter)
    
    xmlFname = region+".xml"
    xmlPath = Env.gemfDir+"/"+xmlFname
    zxmlPath = Env.gemfDir+"/"+region+".zxml"
    xml = XMLWriter(codecs.open(xmlPath, "w", "utf-8"))
    zxml = zipfile.ZipFile(zxmlPath, "w", zipfile.ZIP_DEFLATED)
    gemfFile = Env.gemfDir+region+".gemf"
    
    xml.start("rml", version='1.0')
    
    xml.start("region", description=Regions.getRegionDescription(region), bytes = str(os.path.getsize(gemfFile)))
    
    
    
    
    for kapfile in bo.getkeys():
        xml.start("chart", file=kapfile, name=bo.getname(kapfile), scale=str(bo.getscale(kapfile)), depths=bo.getdepthunits(kapfile), zoom=str(bo.getzoom(kapfile)));
        xml.data(bo.getoutline(kapfile))
        xml.end("chart")
    
    xml.end("region")
    
    xml.end("rml")
    xml.close(1)
    cmd = "tidy -xml -imq " + xmlPath
    os.popen(cmd)
    zxml.write(xmlPath, xmlFname)
    os.remove(xmlPath)
    zxml.close()     
예제 #2
0
def generateRegion(region):
    #fisrt lets see if the gemf is there
    
    print "generating data for " + region
    filter = Regions.getRegionFilterList(region)
    bo = BsbOutlines.BsbOutlines(Env.bsbDir, filter)
#    bsbScales = BsbScales(Env.bsbDir, filter)
#    sortList = bsbScales.getKapsSortedByScale()
#    sortList.reverse()
#    mergeorder = ""
#    for item in sortList:
#        mergeorder += item + ":"
#    mergeorder.rstrip(":")
    sqlFname = region+".sql"
    sqlPath = Env.gemfDir+"/"+sqlFname
    zdatPath = Env.gemfDir+"/"+region+".zdat"
    sqlf = codecs.open(sqlPath, "w", "utf-8")
    zdat = zipfile.ZipFile(zdatPath, "w", zipfile.ZIP_DEFLATED)
    #sqlf = open(Env.gemfDir+"/"+region+".bin", "wb")
    
    wrt = u"--MXMARINER-DBVERSION:3\n"
    #zdat.writestr( sqlFname, wrt)
    sqlf.write( wrt )
    
    if (custom):
        gemfFile = Env.gemfDir+region+".gemf"
        if not os.path.isfile(gemfFile):
            print "gemf not ready:" + region
            sys.exit()
        else:
            bytes = os.path.getsize(gemfFile)
        wrt = strcustom0 %(region)
        sqlf.write( wrt )
        #zdat.writestr( sqlFname, wrt)
        
        #[name], [description], [image], [size], [installeddate]
        wrt = strcustom1 %(region, Regions.getRegionDescription(region), region.lower().replace("_", ""), bytes, epoch)
        sqlf.write( wrt )
        #zdat.writestr( sqlFname, wrt)
    else:
        #wrt = str0 %(epoch, mergeorder, region)
        wrt = str0 %(epoch, region)
        sqlf.write( wrt )
        #zdat.writestr( sqlFname, wrt)
    
    wrt = str1 %(region) 
    sqlf.write( wrt )
    #zdat.writestr( sqlFname, wrt)
    
    for kapfile in bo.getkeys():
        wrt = str2 %(region, kapfile, bo.getname(kapfile), bo.getupdated(kapfile), bo.getscale(kapfile), \
                     bo.getoutline(kapfile), bo.getdepthunits(kapfile), bo.getzoom(kapfile));
        sqlf.write( wrt )
        #zdat.writestr( sqlFname, wrt)
    
    sqlf.close()
    zdat.write(sqlPath, sqlFname)
    os.remove(sqlPath)
    zdat.close()