print(level, row, column) x, y = geoportail_pyramid[level].coordinate_to_projection(location) from PyGeoPortail.Math.Interval import Interval2D interval = Interval2D((x, x + 500), (y, y + 500)) mosaic_interval = geoportail_pyramid[level].projection_interval_to_mosaic(interval) print(mosaic_interval) # for row, column in mosaic_interval.iter(): # print(row, column) loop = asyncio.get_event_loop() tile = loop.run_until_complete(geoportail_wtms.download_ortho_photo(level, row, column)) # tile.to_pil_image().save(tile.filename(with_layer=True, with_level=True)) geoportail_map_provider = GeoPortailMapProvider(geoportail_wtms) tasks = [asyncio.async(geoportail_map_provider.get_tile(level, row, column + i)) for i in range(3)] loop.run_until_complete(asyncio.wait(tasks)) lru_cache = LruCache(constraint=1024**3) def done_callback(future): print('done', future.result()) cached_pyramid = CachedPyramid(geoportail_map_provider, lru_cache) tasks = [asyncio.async(cached_pyramid.acquire(level, row, column + i)) for i in (0, 1, 0)] for task in tasks: task.add_done_callback(done_callback) loop.run_until_complete(asyncio.wait(tasks)) cached_pyramid.release(level, row, column) lru_cache.recycle()
from PyGeoPortail.TileMap.GeoPortail import (GeoPortailPyramid, GeoPortailWTMS, GeoPortailMapProvider, GeoPortailOthorPhotoProvider) from PyGeoPortail.TileMap.Projection import GeoAngle, GeoCoordinate from PyGeoPortail.Math.Interval import Interval2D #################################################################################################### geoportail_pyramid = GeoPortailPyramid() geoportail_wtms = GeoPortailWTMS(user='******', password='******', api_key='qd58byg78dg3nloou4ksa0pz') geoportail_map_provider = GeoPortailMapProvider(geoportail_wtms) longitude = GeoAngle(6, 7, 0) latitude = GeoAngle(44, 41, 0) location = GeoCoordinate(longitude, latitude) x, y = geoportail_pyramid.coordinate_to_projection(location) area = Interval2D((x, x), (y, y)).enlarge(20000) # 10 km print('Area:', area) loop = asyncio.get_event_loop() cache_path = os.path.join(os.environ['HOME'], '.cache', 'pygeoportail') if not os.path.exists(cache_path): os.mkdir(cache_path) def done_callback(future): tile = future.result()