|
Play with this: #!/usr/bin/python from math import pi,cos,sin,log,exp,atan,ceil,floor,radians,tan from subprocess import call import sys, os from Queue import Queue import mapnik import threading def deg2num(lat_deg, lon_deg, zoom): lat_rad = radians(lat_deg) n = 2.0 ** zoom xtile = int((lon_deg + 180.0) / 360.0 * n) ytile = int((1.0 - log(tan(lat_rad) + (1 / cos(lat_rad))) / pi) / 2.0 * n) return(xtile, ytile) def minmax (a,b,c): a = max(a,b) a = min(a,c) return a def dirty_tiles(bbox): for z in range(5,18): str_z = "%s" % z px0 = deg2num(bbox[1], bbox[0], z) px1 = deg2num(bbox[3], bbox[2], z) #print px0, px1 for x in range(int(px0[0]),int(px1[0])+1): str_x = "%s" % x for y in range(int(px0[1]),int(px1[1])+1): str_y = "%s" % y dirty_uri = 'curl http://b.tile.openstreetmap.org/' + str_z + '/' + str_x + '/' + str_y + '.png/dirty; sleep 2;' print dirty_uri if __name__ == "__main__": home = "." #------------------------------------------------------------------------- # # Change the following for different bounding boxes and zoom levels # # Start with an overview # if sys.argv[0] is None: # print "usage dirty.py: tilename max_lat max_lon min_lat min_lon" # exit bbox = (float(sys.argv[2]),float(sys.argv[3]),float(sys.argv[4]),float(sys.argv[5])) # bbox = (-87.0,49.0,-82.0,45.0) # bbox = (-81.0,52.0,-70.0,38.0) print "#",sys.argv[1],":",bbox dirty_tiles(bbox) On 08/08/10 08:26 PM, Tyler Gunn wrote: Is there any easy way to "dirty" large areas of the Mapnik map at all zoom levels? I'm working on the 062N* tiles in Canvec and there's a fair number of tiles at different zoom levels that are not properly refreshed:For example: http://www.openstreetmap.org/?lat=51.529&lon=-100.42&zoom=9&layers=M http://www.openstreetmap.org/?lat=51.547&lon=-101.033&zoom=10&layers=M http://www.openstreetmap.org/?lat=51.564&lon=-101.206&zoom=11&layers=M Notice that some areas are fine at some zoom levels where the same areas are not at other levels. I am not about to go and do the whole "/dirty" thing on all the tiles that are not rendering correctly. :) --
G. Michael Carter Contact: H: 1-519-940-8935 | W: 1-905-267-8494 | M: 1-519-215-1869 | F: 1-519-941-0009 Google Talk: xmpp:[email protected] ![]()
|
_______________________________________________ Talk-ca mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk-ca



