From df28899717ed727d58326835fcc294f8c144ed26 Mon Sep 17 00:00:00 2001 From: Michael Laumer Date: Wed, 23 Dec 2020 22:02:30 +0100 Subject: [PATCH] Distinguish handle of projections --- tilemapbase/mapping.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tilemapbase/mapping.py b/tilemapbase/mapping.py index 87ae12d..0bcba51 100644 --- a/tilemapbase/mapping.py +++ b/tilemapbase/mapping.py @@ -32,6 +32,7 @@ import math as _math import PIL.Image as _Image +from pkg_resources import parse_version _EPSG_RESCALE = 20037508.342789244 @@ -505,10 +506,15 @@ def _parse_crs(crs): if crs is None: return _NATIVE_LONLAT try: - parts = crs["init"].split(":") - if parts[0].upper() != "EPSG": - raise ValueError("Unknown projection '{}'".format(crs["init"])) - code = int(parts[1]) + vers = pyproj.__version__ + #print("Version{}".format(test2)) + if parse_version(vers) > parse_version('2.6.1.post1'): + code = int(crs.to_epsg()) + else: + parts = crs["init"].split(":") + if parts[0].upper() != "EPSG": + raise ValueError("Unknown projection '{}'".format(crs["init"])) + code = int(parts[1]) if code == _NATIVE_LONLAT: return _NATIVE_LONLAT if code == 3857 or code == 3785: