Exemple #1
0
def tileSet_from_yaml(mapName):
    """ Import a TileSet and related models from a YAML file.
    Example:
    >>> ts = tileSet_from_yaml('stlhom')
    >>> ts.name
    'stlhom'
    >>> import models
    >>> t = models.TileSet.get_by_key_name('ts:stlhom')
    >>> t.name
    'stlhom'
    >>> t.overview
    'o:stlhom'
    >>> t.ids
    'tsids:stlhom'
    """
    from dynTileMapper.dtm_wsgi.models import TileSet,Overview,TileSet_IDS
    ymlfile = os.path.join(MAP_FILE_HOME,mapName,'dtm.yaml')
    m = yaml.load(open(ymlfile).read())
    overview = Overview(key_name='o:'+m.name)
    overview.typ = m.overview_typ
    overview.dat = base64.b64decode(m.overview_dat)
    overview.width = m.overview_width
    overview.height = m.overview_height
    overview_key = overview.put()
    tsids = TileSet_IDS(key_name='tsids:'+m.name)
    tsids.ids = zlib.compress(m.ids)
    tsids_key = tsids.put()
    tile_set = TileSet(key_name='ts:'+m.name)
    tile_set.public = True
    tile_set.name = m.name
    tile_set.notes = m.notes
    tile_set.source = m.source
    tile_set.idName = m.variableNames[m.idVariable]
    tile_set.idlen = len(m.ids.split(','))
    tile_set.cLng = m.cLng
    tile_set.cLat = m.cLat
    tile_set.minx = m.minx
    tile_set.miny = m.miny
    tile_set.maxx = m.maxx
    tile_set.maxy = m.maxy
    tile_set.GMERC_BOUNDS = m.gmerc_bounds
    tile_set.maxZoom = 20
    tile_set.overview = overview_key
    tile_set.ids = tsids_key
    tile_set.put()
    return tile_set