From ab1b5923ff52559c007f5825a0cfbbadfa7ecc6d Mon Sep 17 00:00:00 2001 From: vaghawan Date: Mon, 20 Aug 2018 12:49:52 +0545 Subject: [PATCH 1/2] fixed the bigtilesdownload, the problem was caused by saved GEOJSON saved in the same dirctory as of the csv --- gettilesfrombing.py | 90 ++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/gettilesfrombing.py b/gettilesfrombing.py index 17df293..baac21a 100644 --- a/gettilesfrombing.py +++ b/gettilesfrombing.py @@ -12,6 +12,7 @@ from random import random from time import sleep +#secret = "AoxxDlszQe-XFNd6IwlrrjxrtI3Ow-nDn84RIJ5as5HyGvJzERJuA2eiG22GHElt" # MS doesn't want you hardcoding the URLs to the tile server. This request asks for the Aerial # url template. Replace {quadkey}, and {subdomain} response = requests.get("https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?key=%s" % (secrets.bingKey)) @@ -33,51 +34,50 @@ for classDir in os.listdir(cfg.rootOsmDir) : classDirFull = os.path.join( cfg.rootOsmDir,classDir) for fileName in os.listdir(classDirFull) : - fullPath = os.path.join( cfg.rootOsmDir,classDir,fileName) - with open(fullPath, "rt") as csvfile: - csveader = csv.reader(csvfile, delimiter='\t') - print("%s " % (fullPath),end='') - - neededTile = False - for row in csveader: - - tilePixel = quadkey.TileSystem.geo_to_pixel((float(row[0]),float(row[1])), cfg.tileZoom) - - for x in range(-2,3) : - for y in range(-2,3) : - pixel = ( tilePixel[0] + 256*x, tilePixel[1]+256*y) - geo = quadkey.TileSystem.pixel_to_geo(pixel, cfg.tileZoom) - qk = quadkey.from_geo(geo,cfg.tileZoom) - - qkStr = str(qk) - - tileCacheDir = os.path.join(bingTilesDir,qkStr[-3:]) - - if ( os.path.exists(tileCacheDir) == False) : - os.mkdir( tileCacheDir) - - tileFileName = "%s/%s.jpg" % (tileCacheDir, qkStr) - - if ( os.path.exists(tileFileName) ) : - # already downloaded - ok = 1; - else : - print("T",end='') - url = tileUrlTemplate.replace("{subdomain}",imageDomains[0]) - url = url.replace("{quadkey}",qkStr) - url = "%s&key=%s" % (url,secrets.bingKey) - - response = requests.get(url,stream=True) - - with open(tileFileName,'wb') as out_file: - shutil.copyfileobj(response.raw, out_file) - - del response - neededTile = True - - print("") + if fileName.endswith(".csv"): + fullPath = os.path.join( cfg.rootOsmDir,classDir,fileName) + with open(fullPath, "rt") as csvfile: + csveader = csv.reader(csvfile, delimiter='\t') + print("%s " % (fullPath),end='') + + neededTile = False + for row in csveader: + print(row) + tilePixel = quadkey.TileSystem.geo_to_pixel((float(row[0]),float(row[1])), cfg.tileZoom) + + for x in range(-2,3) : + for y in range(-2,3) : + pixel = ( tilePixel[0] + 256*x, tilePixel[1]+256*y) + geo = quadkey.TileSystem.pixel_to_geo(pixel, cfg.tileZoom) + qk = quadkey.from_geo(geo,cfg.tileZoom) + + qkStr = str(qk) + + tileCacheDir = os.path.join(bingTilesDir,qkStr[-3:]) + + if ( os.path.exists(tileCacheDir) == False) : + os.mkdir( tileCacheDir) + + tileFileName = "%s/%s.jpg" % (tileCacheDir, qkStr) + + if ( os.path.exists(tileFileName) ) : + # already downloaded + ok = 1; + else : + print("T",end='') + url = tileUrlTemplate.replace("{subdomain}",imageDomains[0]) + url = url.replace("{quadkey}",qkStr) + url = "%s&key=%s" % (url,secrets.bingKey) + + response = requests.get(url,stream=True) + + with open(tileFileName,'wb') as out_file: + shutil.copyfileobj(response.raw, out_file) + + del response + neededTile = True + + print("") if ( neededTile ): sleep(random()*3) - - From b4126e0b5a7fcb150be6f4d1762eb3cdd80330fd Mon Sep 17 00:00:00 2001 From: vaghawan Date: Mon, 20 Aug 2018 12:54:24 +0545 Subject: [PATCH 2/2] removed prints --- gettilesfrombing.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/gettilesfrombing.py b/gettilesfrombing.py index baac21a..86f8618 100644 --- a/gettilesfrombing.py +++ b/gettilesfrombing.py @@ -12,7 +12,6 @@ from random import random from time import sleep -#secret = "AoxxDlszQe-XFNd6IwlrrjxrtI3Ow-nDn84RIJ5as5HyGvJzERJuA2eiG22GHElt" # MS doesn't want you hardcoding the URLs to the tile server. This request asks for the Aerial # url template. Replace {quadkey}, and {subdomain} response = requests.get("https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?key=%s" % (secrets.bingKey)) @@ -38,11 +37,9 @@ fullPath = os.path.join( cfg.rootOsmDir,classDir,fileName) with open(fullPath, "rt") as csvfile: csveader = csv.reader(csvfile, delimiter='\t') - print("%s " % (fullPath),end='') neededTile = False for row in csveader: - print(row) tilePixel = quadkey.TileSystem.geo_to_pixel((float(row[0]),float(row[1])), cfg.tileZoom) for x in range(-2,3) :