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)
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()
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()
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
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
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
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
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)