def __init__(self, renderer, cache_dir): super(CustomMapLayer, self).__init__(renderer) self.cache_dir = cache_dir self.mercator = GlobalMercator() self.tileloader = None if self.tiles is not None: map_envelope = self.m.envelope() # map_envelope is in mercator projection, convert it to # long/lat projection envelope = renderer.merc_to_lnglat(map_envelope) min_lon = envelope.minx min_lat = envelope.miny max_lon = envelope.maxx max_lat = envelope.maxy width = self.m.width indexing = self.tiles.get('indexing') max_zoom = self.tiles.get('maxZoom') if indexing == 'google': self.tileloader = GoogleTileLoader(min_lat, min_lon, max_lat, max_lon, width, max_zoom) elif indexing == 'tms': self.tileloader = TMSTileLoader(min_lat, min_lon, max_lat, max_lon, width, max_zoom) elif indexing == 'f': self.tileloader = FTileLoader(min_lat, min_lon, max_lat, max_lon, width, max_zoom)