Source code for shyft.dashboard.maps.base_map

import urllib
import abc
from typing import Any
from bokeh.models import BBoxTileSource


[docs] class BaseMap: @property @abc.abstractmethod def tiles(self) -> Any: pass
[docs] class BBoxTileBaseMap(BaseMap):
[docs] def __init__(self, *, service: str, arguments: dict) -> None: super().__init__() self.service = service self.arguments = arguments
@property def incomplete_url(self) -> str: return self.service + urllib.parse.urlencode(self.arguments) @property def url(self) -> str: return self.incomplete_url + '&bbox={XMIN},{YMIN},{XMAX},{YMAX}' @property def tiles(self) -> BBoxTileSource: return BBoxTileSource(url=self.url, snap_to_zoom=True)