Skip to content

Commit

Permalink
Added static prepareKeywordArgs() method to Mapnik provider classes
Browse files Browse the repository at this point in the history
  • Loading branch information
migurski committed Sep 4, 2012
1 parent c4e9d57 commit 8198bfe
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 25 deletions.
19 changes: 1 addition & 18 deletions TileStache/Config.py
Original file line number Diff line number Diff line change
Expand Up @@ -422,11 +422,7 @@ def _parseConfigfileLayer(layer_dict, config, dirpath):
_class = Providers.getProviderByName(provider_dict['name'])
provider_kwargs = {}

if _class is Providers.MapnikImage:
provider_kwargs['mapfile'] = provider_dict['mapfile']
provider_kwargs['fonts'] = provider_dict.get('fonts', None)

elif _class is Providers.Vector.Provider:
if _class is Providers.Vector.Provider:
provider_kwargs['driver'] = provider_dict['driver']
provider_kwargs['parameters'] = provider_dict['parameters']
provider_kwargs['id_property'] = provider_dict.get('id_property', None)
Expand All @@ -448,19 +444,6 @@ def _parseConfigfileLayer(layer_dict, config, dirpath):
elif _class is Providers.MBTiles.Provider:
provider_kwargs['tileset'] = provider_dict['tileset']

elif _class is Providers.MapnikGrid:
provider_kwargs['mapfile'] = provider_dict['mapfile']
if 'layers' in provider_dict:
provider_kwargs['layers'] = provider_dict['layers']
if 'fields' in provider_dict:
provider_kwargs['fields'] = provider_dict['fields']
if 'layer index' in provider_dict:
provider_kwargs['layer_index'] = provider_dict['layer index']
if 'scale' in provider_dict:
provider_kwargs['scale'] = provider_dict['scale']
if 'layer id key' in provider_dict:
provider_kwargs['layer_id_key'] = provider_dict['layer id key']

elif hasattr(_class, 'prepareKeywordArgs'):
provider_kwargs.update(_class.prepareKeywordArgs(provider_dict))

Expand Down
32 changes: 25 additions & 7 deletions TileStache/Mapnik.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,8 @@
try:
import mapnik
except ImportError:
try:
# mapnik 2.0.0 is known as mapnik2
import mapnik2 as mapnik
except ImportError:
# It's possible to get by without mapnik,
# if you don't plan to use the mapnik provider.
pass
# mapnik 2.0.0 is known as mapnik2
import mapnik2 as mapnik

if 'mapnik' in locals():
_version = hasattr(mapnik, 'mapnik_version') and mapnik.mapnik_version() or 701
Expand Down Expand Up @@ -95,6 +90,17 @@ def __init__(self, layer, mapfile, fonts=None):
for font in glob(path.rstrip('/') + '/*.ttf'):
engine.register_font(str(font))

@staticmethod
def prepareKeywordArgs(config_dict):
'''
'''
kwargs = {'mapfile': config_dict['mapfile']}

if 'fonts' in config_dict:
kwargs['fonts'] = config_dict['fonts']

return kwargs

def renderArea(self, width, height, srs, xmin, ymin, xmax, ymax, zoom):
"""
"""
Expand Down Expand Up @@ -209,6 +215,18 @@ def __init__(self, layer, mapfile, fields=None, layers=None, layer_index=0, scal
else:
self.layers = [[layer_index or 0, fields]]

@staticmethod
def prepareKeywordArgs(config_dict):
'''
'''
kwargs = {'mapfile': config_dict['mapfile']}

for key in ('fields', 'layers', 'layer_index', 'scale', 'layer_id_key'):
if key in config_dict:
kwargs[key] = config_dict[key]

return kwargs

def renderArea(self, width, height, srs, xmin, ymin, xmax, ymax, zoom):
"""
"""
Expand Down

0 comments on commit 8198bfe

Please sign in to comment.