Skip to content

Instantly share code, notes, and snippets.

@creg-ny-baa
Created November 15, 2013 14:52
Show Gist options
  • Save creg-ny-baa/7485522 to your computer and use it in GitHub Desktop.
Save creg-ny-baa/7485522 to your computer and use it in GitHub Desktop.
A basic CherryPy setup running on WebFaction to serve map tiles.
import cherrypy
from mbtiles import MBTilesTMS
class Root(object):
@cherrypy.expose
def testmap(self):
return open('/home/webapps/mopcherry/htdocs/testmap.html')
@cherrypy.expose
def tiles(self, dataset, z, x, y):
filename = '/home/webapps/mopcherry/mbtiles/{}.mbtiles'.format(dataset)
tileset = MBTilesTMS(filename)
tilebytes = tileset.get_image_bytes(int(z), int(x), int(y))
cherrypy.response.headers['Content-Type'] = 'image/jpg'
cherrypy.response.headers['Last-Modified'] = tileset.get_date_modified()
if not tilebytes:
return open('/home/webapps/mopcherry/mbtiles/blank.png', 'rb')
return tilebytes
@cherrypy.expose
def map(self, basemap=None, overlay=None):
return "You requested a map... I'm not built for that yet.<br>Base Map: {} | Overlay: {}".format(basemap, overlay)
@cherrypy.expose
def index(self):
return 'Welcome to MyOrthoPhoto -- Serving your orthoimages on the web.'
cherrypy.config.update({
'environment': 'production',
'log.screen': False,
'log.error_file': '/home/tomarnold/webapps/mopcherry/log_error.log',
'server.socket_host': '127.0.0.1',
'server.socket_port': 16681,
})
cherrypy.quickstart(Root())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment