Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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