示例#1
0
class WMSLegendSource(LegendSource):
    def __init__(self, clients, legend_cache):
        self.clients = clients
        self.identifier = legend_identifier([c.identifier for c in self.clients])
        self._cache = legend_cache
        self._size = None
    
    @property
    def size(self):
        if not self._size:
            legend = self.get_legend(LegendQuery(format='image/png', scale=None))
            # TODO image size without as_image?
            self._size = legend.as_image().size
        return self._size
    
    def get_legend(self, query):
        legend = Legend(id=self.identifier, scale=query.scale)
        if not self._cache.load(legend):
            legends = []
            error_occured = False
            for client in self.clients:
                try:
                    legends.append(client.get_legend(query))
                except HTTPClientError, e:
                    error_occured = True
                    log.error(e.args[0])
                except SourceError, e:
                    error_occured = True
                    # TODO errors?
                    log.error(e.args[0])
            format = split_mime_type(query.format)[1]
            legend = Legend(source=concat_legends(legends, format=format),
                            id=self.identifier, scale=query.scale)
            if not error_occured:
                self._cache.store(legend)
示例#2
0
 def get_legend(self, query):
     if self.static:
         # prevent caching of static legends for different scales
         legend = Legend(id=self.identifier, scale=None)
     else:
         legend = Legend(id=self.identifier, scale=query.scale)
     if not self._cache.load(legend):
         legends = []
         error_occured = False
         for client in self.clients:
             try:
                 legends.append(client.get_legend(query))
             except HTTPClientError as e:
                 error_occured = True
                 log.error(e.args[0])
             except SourceError as e:
                 error_occured = True
                 # TODO errors?
                 log.error(e.args[0])
         format = split_mime_type(query.format)[1]
         legend = Legend(source=concat_legends(legends, format=format),
                         id=self.identifier,
                         scale=query.scale)
         if not error_occured:
             self._cache.store(legend)
     return legend.source
示例#3
0
文件: wmts.py 项目: imclab/mapproxy
 def _get_format(self):
     """
     The requested format as string (w/o any 'image/', 'text/', etc prefixes)
     """
     _mime_class, format, options = split_mime_type(
         self.get('format', default=''))
     return format
示例#4
0
文件: wms.py 项目: LKajan/mapproxy
 def get_legend(self, query):
     if self.static:
         # prevent caching of static legends for different scales
         legend = Legend(id=self.identifier, scale=None)
     else:
         legend = Legend(id=self.identifier, scale=query.scale)
     if not self._cache.load(legend):
         legends = []
         error_occured = False
         for client in self.clients:
             try:
                 legends.append(client.get_legend(query))
             except HTTPClientError as e:
                 error_occured = True
                 log.error(e.args[0])
             except SourceError as e:
                 error_occured = True
                 # TODO errors?
                 log.error(e.args[0])
         format = split_mime_type(query.format)[1]
         legend = Legend(source=concat_legends(legends, format=format),
                         id=self.identifier, scale=query.scale)
         if not error_occured:
             self._cache.store(legend)
     return legend.source
示例#5
0
 def get_legend(self, query):
     resp = self.http_client.open(self.url)
     format = split_mime_type(query.format)[1]
     self._check_resp(resp)
     return ImageSource(resp, image_opts=ImageOptions(format=format))
示例#6
0
 def get_legend(self, query):
     resp = self._retrieve(query)
     format = split_mime_type(query.format)[1]
     self._check_resp(resp)
     return ImageSource(resp, image_opts=ImageOptions(format=format))
示例#7
0
 def _get_format(self):
     """
     The requested format as string (w/o any 'image/', 'text/', etc prefixes)
     """
     _mime_class, format, options = split_mime_type(self.get('format', default=''))
     return format
示例#8
0
 def get_legend(self, query):
     resp = self.http_client.open(self.url)
     format = split_mime_type(query.format)[1]
     self._check_resp(resp)
     return ImageSource(resp, image_opts=ImageOptions(format=format))
示例#9
0
 def get_legend(self, query):
     resp = self._retrieve(query)
     format = split_mime_type(query.format)[1]
     self._check_resp(resp)
     return ImageSource(resp, image_opts=ImageOptions(format=format))
示例#10
0
文件: tile.py 项目: zstadler/mapproxy
 def format(self):
     _mime_class, format, _options = split_mime_type(self.format_mime_type)
     return format
示例#11
0
 def format(self):
     _mime_class, format, _options = split_mime_type(self.format_mime_type)
     return format