def __init__(self, meta, name, relations, ways, hierarchy, countries):
        table = sa.Table(name, meta,
                        sa.Column('id', sa.BigInteger,
                                  primary_key=True, autoincrement=False),
                        sa.Column('name', sa.String),
                        sa.Column('intnames', JSONB),
                        sa.Column('ref', sa.String),
                        sa.Column('itinary', JSONB),
                        sa.Column('symbol', sa.String),
                        sa.Column('country', sa.String(length=3)),
                        sa.Column('network', sa.String(length=3)),
                        sa.Column('level', sa.SmallInteger),
                        sa.Column('top', sa.Boolean),
                        sa.Column('geom', Geometry('GEOMETRY', srid=ways.srid)))

        super().__init__(table, relations.change)

        self.rels = relations
        self.ways = ways
        self.rtree = hierarchy
        self.countries = countries

        self.symbols = ShieldFactory(*ROUTE_CONF.symbols)

        self.numthreads = meta.info.get('num_threads', 1)
Exemple #2
0
    def symbols(self, **params):
        from db.common.symbols import ShieldFactory
        factory = ShieldFactory(
            'SwissMobile',
            'JelRef',
            'KCTRef',
            'ItalianHikingRefs',
            'OSMCSymbol',
            'Nordic',
            'Slopes',
            'ShieldImage',
            'TextColorBelow',
            'ColorBox',
            'TextSymbol',
        )

        sym = factory.create(TagStore(params), params.get('_network', ''), 10)

        if sym is None:
            raise cherrypy.NotFound()

        with NamedTemporaryFile() as f:
            sym.write_image(f.name)
            factory._mangle_svg(f.name)

            with open(f.name, 'rb') as f:
                res = f.read()

        cherrypy.response.headers['Content-Type'] = 'image/svg+xml'
        return res
Exemple #3
0
 def __init__(self, segments, hierarchy, countries):
     super().__init__(CONF.route_table_name, segments, hiertable=hierarchy)
     self.symbols = ShieldFactory(*CONF.symbols)
Exemple #4
0
 def __init__(self, meta, osmdata, subset=None, geom_change=None):
     super().__init__(meta, CONF.way_table_name, osmdata,
                      subset=subset, geom_change=geom_change)
     self.symbols = ShieldFactory(*CONF.symbols)
Exemple #5
0
from osgende.lines import PlainWayTable

import sqlalchemy as sa
from sqlalchemy.sql import functions as saf
from sqlalchemy.dialects.postgresql import JSONB
from geoalchemy2 import Geometry
from geoalchemy2.shape import to_shape, from_shape
from shapely.ops import linemerge

from db.common.symbols import ShieldFactory
from db.configs import PisteTableConfig, RouteTableConfig
from db import conf

CONF = conf.get('PISTE', PisteTableConfig)

shield_fab = ShieldFactory(*CONF.symbols)


def _add_piste_columns(table, name):
    table.append_column(sa.Column('name', sa.String))
    table.append_column(sa.Column('intnames', JSONB))
    table.append_column(sa.Column('symbol', sa.String))
    table.append_column(sa.Column('difficulty', sa.SmallInteger))
    table.append_column(sa.Column('piste', sa.SmallInteger))
    table.append_column(sa.Index('idx_%s_iname' % name,
                                 sa.text('upper(name)')))


def _basic_tag_transform(osmid, tags):
    outtags = {'intnames': {}}
Exemple #6
0
 def __init__(self, segments, hierarchy, countries):
     super().__init__(ROUTE_CONF.table_name, segments, hiertable=hierarchy)
     self.country_table = countries
     self.symbols = ShieldFactory(*ROUTE_CONF.symbols)