Changeset 9102 for src/django_gheat/gheat/management/commands/gen_tiles.py
- Timestamp:
- Apr 22, 2011, 3:44:39 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/django_gheat/gheat/management/commands/gen_tiles.py
r9038 r9102 27 27 class LatLonToTile: 28 28 29 30 31 32 33 34 29 def deg2num(self, lat_deg, lon_deg, zoom): 30 lat_rad = math.radians(lat_deg) 31 n = 2.0 ** zoom 32 xtile = int((lon_deg + 180.0) / 360.0 * n) 33 ytile = int((1.0 - math.log(math.tan(lat_rad) + (1 / math.cos(lat_rad))) / math.pi) / 2.0 * n) 34 return(xtile, ytile) 35 35 36 36 37 37 class Command(BaseCommand): 38 38 39 40 41 42 43 44 39 option_list = BaseCommand.option_list + ( 40 make_option("-b", "--tileview", dest="viewname", default="serve_tile"), 41 make_option("-s", "--start", dest="start", default="52.132708,4.437389"), 42 make_option("-e", "--end", dest="end", default="52.178837,4.551029"), 43 make_option("-c", "--colorscheme", dest="color", default="classic"), 44 ) 45 45 46 def handle(self, *args, **options): 46 def handle(self, *args, **options): 47 start = options['start'].split(',') 48 end = options['end'].split(',') 49 viewname = options['viewname'] 50 colorscheme = str(options['color']) 47 51 48 start = options['start'].split(',') 49 end = options['end'].split(',') 50 viewname = options['viewname'] 51 colorscheme = str(options['color']) 52 d2n = LatLonToTile() 52 53 53 d2n = LatLonToTile() 54 #initialize browser client 55 c = Client() 56 from gheat.models import MeetRondje 57 # collection = MeetRondje.objects.values('naam') 58 # for col in collection: 59 for tz in range(1, 21): 60 #calculate start tiles 61 mxmin, mymax = d2n.deg2num(float(start[0]), float(start[1]), tz) 54 62 55 #initialize browser client56 c = Client()63 #calculate end tiles 64 mxmax, mymin = d2n.deg2num(float(end[0]), float(end[1]), tz) 57 65 58 for tz in range(1, 17): 59 #calculate start tiles 60 mxmin, mymax = d2n.deg2num(float(start[0]), float(start[1]), tz) 66 #loop through each tile and generate a request to the serve_tile view using Client 67 for ty in range(mymin, mymax+1): 68 for tx in range(mxmin, mxmax+1): 69 tileurl = reverse(viewname, kwargs={'color_scheme': colorscheme, 'zoom':tz, 'x':tx, 'y':ty}) 70 generate_response = c.get(tileurl) 71 #lousy error handling. Should check why status 200 not returned... I.e. wrong colorscheme 72 if generate_response.status_code == 200: 73 print "Generated tile " + tileurl 74 else: 75 print "Failed generating tile " + tileurl 61 76 62 #calculate end tiles63 mxmax, mymin = d2n.deg2num(float(end[0]), float(end[1]), tz)64 65 #loop through each tile and generate a request to the serve_tile view using Client66 for ty in range(mymin, mymax+1):67 for tx in range(mxmin, mxmax+1):68 69 tileurl = reverse(viewname, kwargs={'color_scheme': colorscheme, 'zoom':tz, 'x':tx, 'y':ty})70 71 generate_response = c.get(tileurl)72 73 #lousy error handling. Should check why status 200 not returned... I.e. wrong colorscheme74 if generate_response.status_code == 200:75 print "Generated tile " + tileurl76 else:77 print "Failed generating tile " + tileurl78
Note:
See TracChangeset
for help on using the changeset viewer.