Skip to content

Commit

Permalink
work around ProjTransform crash with older Proj library
Browse files Browse the repository at this point in the history
See also python-mapnik issue #273

mapnik/python-mapnik#273
  • Loading branch information
hholzgra committed Mar 30, 2024
1 parent c72bd43 commit 949a226
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 13 deletions.
32 changes: 19 additions & 13 deletions ocitysmap/coords.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@
"Mapnik module version %s is too old, see ocitysmap's INSTALL " \
"for more details." % mapnik.mapnik_version_string()

import logging

LOG = logging.getLogger('ocitysmap')


EARTH_RADIUS = 6370986 # meters

def dd2dms(value):
Expand All @@ -44,20 +49,21 @@ def dd2dms(value):

return (degrees, minutes, seconds)

def get_proj_transformation():
try:
# new Proj library versions (e.g. v9 on Debian 12)
proj_wgs84 = mapnik.Projection("epsg:4326")
proj_google = mapnik.Projection("epsg:3857")
except:
# old Proj libraray versions (e.g. v7 on Debian 11)
proj_wgs84 = mapnik.Projection("+init=epsg:4326")
proj_google = mapnik.Projection( "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 " \
"+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m " \
"+nadgrids=@null +no_defs +over")

return mapnik.ProjTransform(proj_wgs84, proj_google)
try:
# new Proj library versions (e.g. v9 on Debian 12)
_proj_wgs84 = mapnik.Projection("epsg:4326")
_proj_google = mapnik.Projection("epsg:3857")
except:
# old Proj libraray versions (e.g. v7 on Debian 11)
_proj_wgs84 = mapnik.Projection("+init=epsg:4326")
_proj_google = mapnik.Projection( "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 " \
"+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m " \
"+nadgrids=@null +no_defs +over")


def get_proj_transformation():
return mapnik.ProjTransform(_proj_wgs84, _proj_google)

class Point:
def __init__(self, lat, long_):
self._lat, self._long = float(lat), float(long_)
Expand Down
3 changes: 3 additions & 0 deletions ocitysmap/layoutlib/single_page_renderer/no_index.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
from gettext import gettext

import logging
LOG = logging.getLogger('ocitysmap')

import ocitysmap
from ocitysmap.layoutlib.abstract_renderer import Renderer
from ocitysmap.layoutlib.single_page_renderers import SinglePageRenderer
Expand Down

0 comments on commit 949a226

Please sign in to comment.