def draw(obj, style=None, bounds=None, size=None, format=None, **options): """ Draws an object onto a canvas. *obj* can be a geometry, list of geometries, or a :class:`Layer <geoscript.layer.layer.Layer>`. *style* is a :class:`Symbolizer <geoscript.style.symbolizer.Symbolizer>` that specifies how to render the object. *size* is a tuple that specifies the dimensions of the canvas the object will drawn upon. *format* is the format or renderer to use for rendering. """ if isinstance(obj, (Layer)): layer = obj else: obj = obj if isinstance(obj, list) else [obj] # wrap up geometries/features in a layer for rendering mem = Memory() if isinstance(obj[0], Feature): layer = mem.create(schema=obj[0].schema) else: layer = mem.create("feature") for o in obj: layer.add(o if isinstance(o, Feature) else [o]) # create a map and render if not bounds: bounds = layer.bounds().scale(1.1) map = Map([layer], [style] if style else []) map.render(format=format, bounds=bounds, size=size, **options)
class Worker(threading.Thread): def __init__(self, **kwargs): threading.Thread.__init__(self) self.args = kwargs def run(self): self.map = Map(**self.args) self.renderer = self.map.render() def dispose(self): self.renderer.window.dispose() self.map.dispose()
def run(self): self.map = Map(**self.args) self.renderer = self.map.render()