Animerade akvarell karta för Cycle Tour/tävlingen videor (3 / 9 steg)
Steg 3: Fastställa vilka plattor för att hämta, baserat på trace gränser
Följande funktion införlivar listan över lat, lon par, effektivt skapa en lista över breddgrader och en lista över longituder så att det är lätt att få det lägsta och högsta värdet av varje.
När spåra gränserna är kända kan vi använda funktionen tidigare definierade för att bestämma x, y-värden av brickor på varje hörn.
### Funktion att få spåra boundries ###
def traceBoundaries(trace):
#transpose 2d listan så att vi har en rad på lats och en rad av lons
lat = zip(*trace) [0]
Lon = zip(*trace) [1]
returnera {"norra": max (lat), "söder": min (lat), "österut": max (lon), "väst": min (lon)} eftersom vi nu har en metod för att bestämma gränserna för GPS spår i lat, lon koordinater och en funktion för att konvertera de lat, lon koordinater x, y kakel nummer är det en enkel sak att bestämma området för plattor som ska hämtas för en given zoomnivå. Brickorna är numrerade med 0,0 topp (nordväst) till vänster, så NW gränsen motsvarar den övre vänstra rutan och SE gränsen motsvarar den nedre högra delbilden.
### Fastställa kakel gränserna och zoom ###
def determineTileRange(boundaries,zoom):
XMax, Ymin = deg2num(boundaries["north"],boundaries["east"],zoom)
XMin, Ymax = deg2num(boundaries["south"],boundaries["west"],zoom)
returnera {"xMin": Xmin, "xMax": Xmax, "yMin": Ymin, "yMax": Ymax}