+++ /dev/null
-#!/usr/bin/env python
-# coding: UTF-8
-
-import sqlite3
-import math
-from pprint import pprint
-
-def queue_render(db,filename):
-
- conn = sqlite3.connect(db)
- cur = conn.cursor()
-
- cur.execute("select minlat,minlon,maxlat,maxlon from tracks where filename=?" , (filename.decode('UTF-8'),))
-
- minlat,minlon,maxlat,maxlon=cur.fetchone()
-
- # определяем примерный стартовый зум
-
- minlatrad = math.radians(minlat)
- maxlatrad = math.radians(maxlat)
-
- minx = (minlon + 180.0)/360.0
- maxx = (maxlon + 180.0)/360.0
-
- miny = (1.0 - math.log(math.tan(minlatrad) + (1 / math.cos(minlatrad))) / math.pi) / 2.0
- maxy = (1.0 - math.log(math.tan(maxlatrad) + (1 / math.cos(maxlatrad))) / math.pi) / 2.0
-
- if minx>maxx:
- minx,maxx = maxx,minx
-
- if miny>maxy:
- miny,maxy = maxy,miny
-
- for zoom in range(9,16):
-
- n = 2 ** zoom
-
- minxt = int(minx * n)
- minyt = int(miny * n)
- maxxt = int(maxx * n)
- maxyt = int(maxy * n)
-
- ins = conn.cursor()
- 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
-
- conn.commit()
-
-def process_queue(db,map):
-
- from os import system
-
- conn = sqlite3.connect(db)
- cur = conn.cursor()
- cur.execute('select id,zoom,minx,maxx,miny,maxy from render_queue')
- list=cur.fetchall()
-
- for rec in list:
-
- id,zoom,minx,maxx,miny,maxy=rec
-
- command = 'render_list -a -m '+map+ \
- ' -z '+str(zoom)+' -Z '+str(zoom)+ \
- ' -x '+str(minx)+' -X '+str(maxx)+ \
- ' -y '+str(miny)+' -Y '+str(maxy)
- if system(command)==0:
- dcur=conn.cursor()
- dcur.execute('delete from render_queue where id=?',(id,))
- conn.commit()
-
-def main():
-
- from optparse import OptionParser
-
- parser = OptionParser()
- parser.add_option("-d", "--data", dest="directory",
- help="Data directory", metavar="DIR")
- parser.add_option("-m", "--map", dest="map",
- help="Map name", metavar="MAP")
- (options, args) = parser.parse_args()
-
- db=options.directory+'/gpx.db'
- map=options.map
-
- process_queue(db,map)
-
-if __name__ == "__main__":
-
- main()
-
\ No newline at end of file