class TornadoRequestHandler(tornado.web.RequestHandler): """ Create a Tornado HTTP get and post handler. This class is documented as part of Tornado public RequestHandler API: http://www.tornadoweb.org/en/stable/guide/structure.html """ def initialize(self, config=None, autoreload=False): self.config = config self.autoreload = autoreload try: self.tsconfig = TileStache.parseConfig(self.config) except: print "Error loading Tilestache config:" raise def get(self, *args, **kwargs): if self.autoreload: # re-parse the config file on every request try: self.tsconfig = parseConfig(self.config) except Exception, e: raise Core.KnownUnknown( "Error loading Tilestache configuration:\n%s" % str(e)) status_code, headers, content = TileStache.requestHandler2( self.tsconfig, args[0]) # Get the header header = headers.items()[0] # Tornado syntax for passing headers self.set_header(header[0], header[1]) self.write(content)
def handle_request(request): config_dict = get_tileserver_config() layer_models = models.TileserverLayers.objects.all() for layer_model in layer_models: config_dict['layers'][layer_model.name] = { "provider": { "name": "mapnik", "mapfile": layer_model.path } } config = TileStache.Config.buildConfiguration(config_dict) path_info = request.path.replace('/tileserver/', '') query_string = None script_name = None status_code, headers, content = TileStache.requestHandler2( config, path_info, query_string, script_name) response = HttpResponse() response.content = content response.status_code = status_code for header, value in headers.items(): response[header] = value response['Content-length'] = str(len(content)) return response
def handle_request(request): path_info = request.path.replace(reverse('tileserver') + '/', '') layer_id = path_info.split('/')[0] config_dict = get_tileserver_config(layer_id, request=request) config = TileStache.Config.buildConfiguration(config_dict) query_string = "" script_name = "" response = HttpResponse() try: status_code, headers, content = TileStache.requestHandler2( config, path_info, query_string, script_name) response.content = content response.status_code = status_code for header, value in headers.items(): response[header] = value response['Content-length'] = str(len(content)) except Exception as e: print 'No tile data', e, response return response