Skip to content

Commit

Permalink
Optional direct link to map webpage
Browse files Browse the repository at this point in the history
  • Loading branch information
leplatrem committed Jan 27, 2012
1 parent e8ab6c0 commit d147644
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
1 change: 1 addition & 0 deletions mbtilesmap/__init__.py
Expand Up @@ -5,6 +5,7 @@
MBTILES_NAME_PATTERN = r'[\.\-\w]+'

app_settings = EasyDict(dict({
'MAP_URL_NAME' : 'map',
'MBTILES_EXT' : 'mbtiles',
'MBTILES_ROOT' : settings.MEDIA_ROOT,
'TILE_SIZE' : 256,
Expand Down
20 changes: 14 additions & 6 deletions mbtilesmap/models.py
Expand Up @@ -4,7 +4,7 @@
import logging

from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse, NoReverseMatch
from django.utils import simplejson
from django.utils.translation import ugettext as _

Expand Down Expand Up @@ -88,9 +88,9 @@ def filesize(self):

@property
def jsonp(self):
#TODO: cache !
tilepattern = reverse("mbtilesmap:tile", kwargs=dict(name=self.name, x='{x}',y='{y}',z='{z}'))
tilepattern = tilepattern.replace('%7B', '{').replace('%7D', '}')

jsonp = {
"id": self.name,
"scheme": "xyz",
Expand All @@ -100,9 +100,17 @@ def jsonp(self):
"maxzoom": self.maxzoom,
"center": self.center(),
"tiles": [tilepattern],
"webpage": reverse("map", kwargs=dict(name=self.name)),
#"download": reverse("mbtilesmap:download", kwargs=dict(name=self.name)),
}
# Add direct link to Webpage if defined in project
try:
mapurl =reverse(app_settings.MAP_URL_NAME, kwargs=dict(name=self.name))
jsonp["webpage"] = mapurl
except NoReverseMatch, e:
logger.warning("Webpage url for map (MAP_URL_NAME) not available.")

#TODO: Add direct link to download MBTiles file
#"download": reverse("mbtilesmap:download", kwargs=dict(name=self.name)),

jsonp.update(self.metadata)
return 'grid(%s);' % simplejson.dumps(jsonp)

Expand All @@ -114,8 +122,8 @@ def metadata(self):
metadata = dict(rows)
bounds = metadata.get('bounds', '').split(',')
if len(bounds) != 4:
logger.warning(_("Missing or invalid bounds metadata in '%s'") % self.name)
bounds = '-180,-90,180,90'
logger.warning(_("Invalid bounds metadata in '%s'") % self.name)
bounds = [-180,-90,180,90]
metadata['bounds'] = list(map(float, bounds))
return metadata

Expand Down

0 comments on commit d147644

Please sign in to comment.