示例#1
0
文件: layers.py 项目: fredj/mf-chsdi3
def get_layers_config_for_params(params, query, model):
    ''' Returns a generator function that yields
    layer config dictionaries. '''
    model = LayersConfig
    query = filter_by_map_name(query, model, params.mapName)
    query = filter_by_geodata_staging(query, model.staging,
                                      params.geodataStaging)

    for q in query:
        yield q.layerConfig(params)
示例#2
0
文件: layers.py 项目: qbns/mf-chsdi3
def get_layers_metadata_for_params(params, query, model, layerIds=None):
    """ Returns a generator function that yields
    layer metadata dictionaries. """
    query = filter_by_map_name(query, model, params.mapName)
    query = filter_by_geodata_staging(query, model.staging, params.geodataStaging)
    if layerIds is not None:
        for layerId in layerIds:
            layer = get_layer(query, model, layerId)
            yield layer.layerMetadata()

    for q in query:
        yield q.layerMetadata()
示例#3
0
文件: layers.py 项目: fredj/mf-chsdi3
def get_layers_metadata_for_params(params, query, model, layerIds=None):
    ''' Returns a generator function that yields
    layer metadata dictionaries. '''
    query = filter_by_map_name(query, model, params.mapName)
    query = filter_by_geodata_staging(query, model.staging,
                                      params.geodataStaging)
    if layerIds is not None:
        for layerId in layerIds:
            layer = get_layer(query, model, layerId)
            yield layer.layerMetadata()

    for q in query:
        yield q.layerMetadata()
示例#4
0
    def wmtscapabilities(self):
        from pyramid.renderers import render_to_response
        scheme = self.request.headers.get(
            'X-Forwarded-Proto',
            self.request.scheme)
        staging = self.request.registry.settings['geodata_staging']
        host = self.request.headers.get(
            'X-Forwarded-Host', self.request.host)
        mapproxyHost = self.request.registry.settings['mapproxyhost']
        apache_base_path = self.request.registry.settings['apache_base_path']
        apache_entry_point = '/' if (apache_base_path == 'main' or 'localhost' in host) else '/' + apache_base_path

        # Default ressource
        s3_url = sanitize_url("%s://wmts.geo.admin.ch/" % scheme)
        mapproxy_url = sanitize_url("%s://%s%s/" % (scheme, mapproxyHost, apache_entry_point))
        onlineressources = {'mapproxy': mapproxy_url, 's3': s3_url}

        layers_query = self.request.db.query(self.models['GetCap'])
        layers_query = filter_by_geodata_staging(
            layers_query,
            self.models['GetCap'].staging,
            staging
        )
        if self.mapName != 'all':
            layers_query = filter_by_map_name(layers_query, self.models['GetCap'], self.mapName)
        layers = layers_query.all()
        if hasattr(self.models['GetCapThemes'], 'oberthema_id'):
            themes = self.request.db.query(self.models['GetCapThemes']).order_by(self.models['GetCapThemes'].oberthema_id).all()
        else:
            themes = self.request.db.query(self.models['GetCapThemes']).all()

        metadata = self.request.db.query(self.models['ServiceMetadata'])\
            .filter(self.models['ServiceMetadata']
                    .pk_map_name.like('%wmts-bgdi%')).first()

        wmts = {
            'layers': layers,
            'themes': themes,
            'metadata': metadata,
            'scheme': scheme,
            'onlineressources': onlineressources,
            'tilematrixset': self.tileMatrixSet,
            'tilematrixsetDefs': DEFAULT_TILEMATRIXSET
        }
        response = render_to_response(
            'chsdi:templates/wmtscapabilities.mako',
            wmts,
            request=self.request)
        response.content_type = 'text/xml'
        return response
示例#5
0
    def wmtscapabilities(self):
        from pyramid.renderers import render_to_response
        scheme = self.request.headers.get('X-Forwarded-Proto',
                                          self.request.scheme)
        staging = self.request.registry.settings['geodata_staging']
        mapproxyHost = self.request.registry.settings['mapproxyhost']

        # Default ressource
        s3_url = sanitize_url("%s://wmts.geo.admin.ch/" % scheme)
        mapproxy_url = sanitize_url("%s://%s/" % (scheme, mapproxyHost))
        onlineressources = {'mapproxy': mapproxy_url, 's3': s3_url}

        layers_query = self.request.db.query(self.models['GetCap'])
        layers_query = filter_by_geodata_staging(layers_query,
                                                 self.models['GetCap'].staging,
                                                 staging)
        if self.mapName != 'all':
            layers_query = filter_by_map_name(layers_query,
                                              self.models['GetCap'],
                                              self.mapName)
        layers = layers_query.all()
        if hasattr(self.models['GetCapThemes'], 'oberthema_id'):
            themes = self.request.db.query(
                self.models['GetCapThemes']).order_by(
                    self.models['GetCapThemes'].oberthema_id).all()
        else:
            themes = self.request.db.query(self.models['GetCapThemes']).all()

        metadata = self.request.db.query(self.models['ServiceMetadata'])\
            .filter(self.models['ServiceMetadata']
                    .pk_map_name.like('%wmts-bgdi%')).first()

        wmts = {
            'layers': layers,
            'themes': themes,
            'metadata': metadata,
            'scheme': scheme,
            'onlineressources': onlineressources,
            'tilematrixset': self.tileMatrixSet,
            'tilematrixsetDefs': DEFAULT_TILEMATRIXSET
        }
        response = render_to_response(
            'chsdi:templates/wmtscapabilities/wmtscapabilities.mako',
            wmts,
            request=self.request)
        response.content_type = 'text/xml'
        return response
示例#6
0
    def wmtscapabilities(self):
        from pyramid.renderers import render_to_response
        scheme = self.request.headers.get('X-Forwarded-Proto',
                                          self.request.scheme)
        staging = self.request.registry.settings['geodata_staging']
        wmts_public_host = self.request.registry.settings['wmts_public_host']

        # Default ressource
        onlineressource = sanitize_url("%s://%s/" % (scheme, wmts_public_host))

        layers_query = self.request.db.query(self.models['GetCap'])
        layers_query = filter_by_geodata_staging(layers_query,
                                                 self.models['GetCap'].staging,
                                                 staging)
        if self.mapName != 'all':
            layers_query = filter_by_map_name(layers_query,
                                              self.models['GetCap'],
                                              self.mapName)
        layers = layers_query.all()
        zoom_levels = getLayersZoomLevelSet(self.tileMatrixSet, layers)
        if hasattr(self.models['GetCapThemes'], 'oberthema_id'):
            themes = self.request.db.query(
                self.models['GetCapThemes']).order_by(
                    self.models['GetCapThemes'].oberthema_id).all()
        else:
            themes = self.request.db.query(self.models['GetCapThemes']).all()

        metadata = self.request.db.query(self.models['ServiceMetadata'])\
            .filter(self.models['ServiceMetadata']
                    .pk_map_name.like(u'%wmts-bgdi%')).first()

        wmts = {
            'layers': layers,
            'zoomlevels': zoom_levels,
            'themes': themes,
            'metadata': metadata,
            'scheme': scheme,
            'onlineressource': onlineressource,
            'tilematrixset': self.tileMatrixSet,
            'tilematrixsetDefs': getDefaultTileMatrixSet(self.tileMatrixSet)
        }
        response = render_to_response(
            'chsdi:templates/wmtscapabilities/wmtscapabilities.mako',
            wmts,
            request=self.request)
        response.content_type = 'text/xml'
        return response
示例#7
0
    def wmtscapabilities(self):
        from pyramid.renderers import render_to_response
        scheme = self.request.headers.get(
            'X-Forwarded-Proto',
            self.request.scheme)
        staging = self.request.registry.settings['geodata_staging']
        wmts_public_host = self.request.registry.settings['wmts_public_host']

        # Default ressource
        onlineressource = sanitize_url("%s://%s/" % (scheme, wmts_public_host))

        layers_query = self.request.db.query(self.models['GetCap'])
        layers_query = filter_by_geodata_staging(
            layers_query,
            self.models['GetCap'].staging,
            staging
        )
        if self.mapName != 'all':
            layers_query = filter_by_map_name(layers_query, self.models['GetCap'], self.mapName)
        layers = layers_query.all()
        zoom_levels = getLayersZoomLevelSet(self.tileMatrixSet, layers)
        if hasattr(self.models['GetCapThemes'], 'oberthema_id'):
            themes = self.request.db.query(self.models['GetCapThemes']).order_by(self.models['GetCapThemes'].oberthema_id).all()
        else:
            themes = self.request.db.query(self.models['GetCapThemes']).all()

        metadata = self.request.db.query(self.models['ServiceMetadata'])\
            .filter(self.models['ServiceMetadata']
                    .pk_map_name.like(u'%wmts-bgdi%')).first()

        wmts = {
            'layers': layers,
            'zoomlevels': zoom_levels,
            'themes': themes,
            'metadata': metadata,
            'scheme': scheme,
            'onlineressource': onlineressource,
            'tilematrixset': self.tileMatrixSet,
            'tilematrixsetDefs': getDefaultTileMatrixSet(self.tileMatrixSet)
        }
        response = render_to_response(
            'chsdi:templates/wmtscapabilities/wmtscapabilities.mako',
            wmts,
            request=self.request)
        response.content_type = 'text/xml'
        return response
示例#8
0
def get_layers_config_for_params(params, query, model):
    ''' Returns a generator function that yields
    layer config dictionaries. '''
    model = LayersConfig
    query = filter_by_map_name(
        query,
        model,
        params.mapName
    )
    query = filter_by_geodata_staging(
        query,
        model.staging,
        params.geodataStaging
    )

    for q in query:
        yield q.layerConfig(params)