####################################################################################################

from PyGeoPortail.Config import Config
from PyGeoPortail.TileMap.GeoPortail import (GeoPortailPyramid,
                                             GeoPortailWTMS,
                                             GeoPortailWTMSLicence,
                                             GeoPortailMapProvider,
                                             GeoPortailOthorPhotoProvider)
from PyGeoPortail.TileMap.LruCache import LruCache
from PyGeoPortail.TileMap.Projection import GeoAngle, GeoCoordinate
from PyGeoPortail.TileMap.TileCache import CachedPyramid

####################################################################################################

geoportail_licence = GeoPortailWTMSLicence.load_from_json(Config.License.geoportail)
geoportail_wtms = GeoPortailWTMS(geoportail_licence, timeout=120)

geoportail_pyramid = GeoPortailPyramid()

level = 16
longitude = GeoAngle(6, 7, 0)
latitude = GeoAngle(44, 41, 0)
location = GeoCoordinate(longitude, latitude)
row, column = geoportail_pyramid[level].coordinate_to_mosaic(location)
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)
                                             GeoPortailMapProvider,
                                             GeoPortailOthorPhotoProvider)
from PyGeoPortail.TileMap.Projection import GeoAngle, GeoCoordinate

####################################################################################################

geoportail_pyramid = GeoPortailPyramid()

level = 16
longitude = GeoAngle(6, 7, 0)
latitude = GeoAngle(44, 41, 0)
location = GeoCoordinate(longitude, latitude)
row, column = geoportail_pyramid[level].coordinate_to_mosaic(location)

geoportail_licence = GeoPortailWTMSLicence.load_from_json(Config.License.geoportail)
geoportail_wtms = GeoPortailWTMS(geoportail_licence, timeout=120)

print(geoportail_wtms.make_url('geoportail', 'wmts',
                               service='WMTS',
                               version='1.0.0',
                               request='GetTile',
                               layer='GEOGRAPHICALGRIDSYSTEMS.MAPS',
                               style='normal',
                               format='image/jpeg',
                               tilematrixset='PM',
                               tilematrix=level,
                               tilerow=row,
                               tilecol=column,
))

loop = asyncio.get_event_loop()