minlat,minlon,maxlat,maxlon=cur.fetchone()
queue_tiles(db,minlat,minlon,maxlat,maxlon)
-def queue_tiles(db,minlat,minlon,maxlat,maxlon):
+def queue_tiles(db,minlat,minlon,maxlat,maxlon,forced_max_zoom=None):
conn = sqlite3.connect(db)
if miny>maxy:
miny,maxy = maxy,miny
- for zoom in range(9,16):
+ minzoom=9
+ if forced_max_zoom:
+ maxzoom=forced_max_zoom
+ else:
+ maxzoom=16
+
+ for zoom in range(minzoom,maxzoom+1):
n = 2 ** zoom
print zoom,minxt,maxxt,minyt,maxyt
ins.execute('insert into render_queue(zoom,minx,maxx,miny,maxy) values(?,?,?,?,?)',(zoom,minxt,maxxt,minyt,maxyt))
- if (maxxt-minxt>16) or (maxyt-minyt>12):
- conn.commit()
- break
+ if not forced_max_zoom:
+ if (maxxt-minxt>16) or (maxyt-minyt>12):
+ conn.commit()
+ break
conn.commit()
help="Data directory", metavar="DIR")
parser.add_option("-m", "--map", dest="map",
help="Map name", metavar="MAP")
+ parser.add_option("-z", "--zoom", dest="zoom",
+ help="Maximal zoom (forced), used with coordinates pairs (minlat minlon maxlat maxlon) in arguments", metavar="MAP")
(options, args) = parser.parse_args()
db=options.directory+'/gpx.db'
map=options.map
+ zoom=options.zoom
+
+ if zoom:
+ minlat,minlon,maxlat,maxlon=args
+ queue_tiles(db,float(minlat),float(minlon),float(maxlat),float(maxlon),int(zoom))
- process_queue(db,map)
+ if map:
+ process_queue(db,map)
if __name__ == "__main__":