Animerade akvarell karta för Cycle Tour/tävlingen videor (4 / 9 steg)
Steg 4: Hämta brickor
Brickorna är tillgänglig från Ståndares karta server (eller vilken annan karta du väljer att använda) med URL http://tile.stamen.com/watercolor/ZOOM/X/Y.jpgGenom att använda Python's "os.path" verktyg kan vi göra skriptet cross-kompatibla mellan Windows och Linux-system. Efter en enkel fil kontrollera att avgöra om vi har hämtat det särskilda kakel tidigare, använder vi "urllib" Pythonmodul att hämta bilden och spara den i en lokal katalog med samma struktur som webbservern.
Det är värt att notera att förlängningen av akvarell karta brickor är ".jpg" vilket är ovanligt, kartor sparas normalt som "png" eftersom deras begränsade paletten och skarpa kanter är bättre komprimerad så.
### Ta ett kakel sortiment och hämta dem (om inte lokalt presentera) ###
def getTiles(xyRange,zoom):
#set acive katalog med skriptet
CurrentDir = os.curdir
tileDir = os.path.join(currentdir,"tiles")
#define kakel servern
tileServerUrl = "http://tile.stamen.com/watercolor/"
#create en lista över alla x- och y-koordinater för att hämta
xRange = range(xyRange["xMin"],xyRange["xMax"]+1)
Område = range(xyRange["yMin"],xyRange["yMax"]+1)
x i xRange:
för y i område:
#define namnet
tileFileName = str (y) + ".jpg"
#define den lokala sökvägen som den fullständiga sökvägen till de lokala filerna och fjärrfiler
localPath = os.path.join(tileDir,str(zoom),str(x))
localFile = os.path.join(localPath,tileFileName)
remoteFile = tileServerUrl + str (zoom) + "/" + str (x) + "/" + str (y) + ".jpg"
#check om filen finns lokalt
om inte os.path.isfile(localFile):
skriva ut "hämtar" + remoteFile
#if lokal katalog finns inte ännu, skapa det
om inte os.path.isdir(localPath):
OS.makedirs(localPath)
#retrieve filen från servern och spara den
urllib.urlretrieve(remoteFile,localFile)