Ejemplo n.º 1
0
  def __init__(self, name=None, workspace=None, source=None, schema=None):
    if not workspace:
       from geoscript.workspace import Memory
       workspace = Memory()
 
    name = name if name else schema.name if schema else Layer._newname()
       
    if not source:
       layer = None
       try:
         layer = workspace.get(name)
       except KeyError:
         pass
        
       if not layer:
         if schema:
           layer = workspace.create(schema.name, schema.fields)
         else:
           layer = workspace.create(name)

       source = layer._source
    elif isinstance(source, FeatureCollection):
      source = CollectionDelegatingFeatureSource(source)

    self.workspace = workspace
    self.schema = schema or feature.Schema(ft=source.schema) 
    self._source = source 

    # keep a crs local to allow the native crs to be overriden, or to 
    # provide a crs for layers that don't have one specified
    self._proj = None
Ejemplo n.º 2
0
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) 
Ejemplo n.º 3
0
    def __init__(self, name=None, workspace=None, fs=None, schema=None):
        if not workspace:
            from geoscript.workspace import Memory

            workspace = Memory()

        name = name or Layer._newname()

        if not fs:
            layer = None
            try:
                layer = workspace.get(name)
            except KeyError:
                pass

            if not layer:
                if schema:
                    layer = workspace.create(schema.name, schema.fields)
                else:
                    layer = workspace.create(name)

            fs = layer._source

        self.workspace = workspace
        self.schema = schema or feature.Schema(ft=fs.schema)
        self._source = fs

        # keep a crs local to allow the native crs to be overriden, or to
        # provide a crs for layers that don't have one specified
        self._proj = None
Ejemplo n.º 4
0
    def __init__(self, name=None, workspace=None, source=None, schema=None):
        if not workspace:
            from geoscript.workspace import Memory
            workspace = Memory()

        name = name if name else schema.name if schema else Layer._newname()

        if not source:
            layer = None
            try:
                layer = workspace.get(name)
            except KeyError:
                pass

            if not layer:
                if schema:
                    layer = workspace.create(schema.name, schema.fields)
                else:
                    layer = workspace.create(name)

            source = layer._source
        elif isinstance(source, FeatureCollection):
            source = CollectionDelegatingFeatureSource(source)

        self.workspace = workspace
        self.schema = schema or feature.Schema(ft=source.schema)
        self._source = source

        # keep a crs local to allow the native crs to be overriden, or to
        # provide a crs for layers that don't have one specified
        self._proj = None
Ejemplo n.º 5
0
    def __init__(self, name=None, workspace=None, fs=None, schema=None):
        if not workspace:
            from geoscript.workspace import Memory
            workspace = Memory()

        name = name or Layer._newname()

        if not fs:
            layer = None
            try:
                layer = workspace.get(name)
            except KeyError:
                pass

            if not layer:
                if schema:
                    layer = workspace.create(schema.name, schema.fields)
                else:
                    layer = workspace.create(name)

            fs = layer._source

        self.workspace = workspace
        self.schema = schema or feature.Schema(ft=fs.schema)
        self._source = fs

        # keep a crs local to allow the native crs to be overriden, or to
        # provide a crs for layers that don't have one specified
        self._proj = None