class MbtilesHandler(tornado.web.RequestHandler): def initialize(self, ext, mbtiles): self.ext = ext self.mbtiles = mbtiles self.tileset = MbtileSet(mbtiles=mbtiles) def get(self, z, x, y): origin = self.get_arguments('origin') try: origin = origin[0] except IndexError: origin = 'top' if origin == 'top': # invert y axis to top origin ymax = 1 << int(z) y = ymax - int(y) - 1 tile = self.tileset.get_tile(z, x, y) if self.ext == 'png': self.set_header('Content-Type', 'image/png') self.write(tile.get_png()) elif self.ext == 'json': callback = self.get_arguments('callback') try: callback = callback[0] except IndexError: callback = None self.set_header('Content-Type', 'application/json') if callback: self.write("%s(%s)" % (callback, tile.get_json())) else: self.write(tile.get_json())
class MbtilesHandler(tornado.web.RequestHandler): def initialize(self, ext, mbtiles): self.ext = ext self.mbtiles = mbtiles self.tileset = MbtileSet(mbtiles=mbtiles) def get(self, z, x, y): origin = self.get_arguments('origin') try: origin = origin[0] except IndexError: origin = 'bottom' if origin == 'top': # invert y axis to top origin ymax = 1 << int(z) y = ymax - int(y) - 1 tile = self.tileset.get_tile(z, x, y) if self.ext == 'png': self.set_header('Content-Type', 'image/png') self.write(tile.get_png()) elif self.ext == 'json': callback = self.get_arguments('callback') try: callback = callback[0] except IndexError: callback = None self.set_header('Content-Type', 'application/json') if callback: self.write("%s(%s)" % (callback, tile.get_json())) else: self.write(tile.get_json())
class MbtilesHandler(tornado.web.RequestHandler): def initialize(self, ext, mbtiles): self.ext = ext self.mbtiles = mbtiles self.tileset = MbtileSet(mbtiles=mbtiles) def get(self, z, x, y): origin = self.get_arguments("origin") try: origin = origin[0] except IndexError: origin = "bottom" if origin == "top": # invert y axis to top origin ymax = 1 << int(z) y = ymax - int(y) - 1 tile = self.tileset.get_tile(z, x, y) if self.ext == "png": self.set_header("Content-Type", "image/png") self.write(tile.get_png()) elif self.ext == "json": callback = self.get_arguments("callback") try: callback = callback[0] except IndexError: callback = None self.set_header("Content-Type", "application/json") if callback: self.write("%s(%s)" % (callback, tile.get_json())) else: self.write(tile.get_json())
class MetaDataHandler(tornado.web.RequestHandler): def initialize(self, mbtiles): self.mbtiles = mbtiles self.tileset = MbtileSet(mbtiles=mbtiles) def get(self): import json self.set_header('Content-Type', 'text/json') data = self.tileset.get_metadata() self.write(json.dumps(data))
def initialize(self, ext, mbtiles): self.ext = ext self.mbtiles = mbtiles self.tileset = MbtileSet(mbtiles=mbtiles)
help='Path to .mbtiles file', action='store', dest='file', type='string') parser.add_option('-o', '--output', help='Output directory', action='store', dest='output', type='string') parser.add_option( '-i', '--invert', help='Invert Y axis (True = Top Y origin ala google and bing)', action='store_true', dest='invert', default=False) (opts, args) = parser.parse_args() if not opts.file: parser.error("Please specify a valid .mbtiles file") if not opts.output: parser.error("Please specify and output directory") origin = "bottom" if opts.invert: origin = "top" tileset = MbtileSet(mbtiles=opts.file, outdir=opts.output, origin=origin) tileset.write_all()
def initialize(self, ext, mbtiles): self.ext = ext self.mbtiles = mbtiles self.tileset = MbtileSet(mbtiles=mbtiles, origin='top') # Leaflet slippy map
def __tileset_default(self): return MbtileSet(mbtiles=self.filename)
def _filename_changed(self, new): self._tileset = MbtileSet(mbtiles=new) self.get_tile.clear()
from mbtiles import MbtileSet import optparse if __name__ == '__main__': parser = optparse.OptionParser( usage="\nOutputs png/json files from an mbtiles file\nmbtiles2files.py [options] -f <mbtiles file> -o <output dir>") parser.add_option('-f', '--file', help='Path to .mbtiles file', action='store', dest='file', type='string') parser.add_option('-o', '--output', help='Output directory', action='store', dest='output', type='string') parser.add_option('-i', '--invert', help='Invert Y axis (True = Top Y origin ala google and bing)', action='store_true', dest='invert', default=False) (opts, args) = parser.parse_args() if not opts.file: parser.error("Please specify a valid .mbtiles file") if not opts.output: parser.error("Please specify and output directory") origin = "bottom" if opts.invert: origin = "top" tileset = MbtileSet(mbtiles=opts.file, outdir=opts.output, origin=origin) tileset.write_all()
def initialize(self, mbtiles): self.mbtiles = mbtiles self.tileset = MbtileSet(mbtiles=mbtiles)