Example #1
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) 
Example #2
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
Example #3
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
Example #4
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
Example #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
Example #6
0
 def setUp(self):
   mem = Memory()
   self.l = mem.add(Shapefile('work/states.shp'))
Example #7
0
 def setUp(self):
     self.ws = Memory()
Example #8
0
if __name__ == '__main__':

    # Get the arguments, naively
    script, shp_dir, config_file_name, out_file = sys.argv

    # Read the json config file
    f = open(config_file_name, 'r')
    config = json.load(f)

    # Create the workspaces
    in_ws = Directory(shp_dir)
    output_dir = out_file
    if not os.path.isdir(output_dir):
        os.mkdir(output_dir)
    out_ws = Directory(output_dir)
    mem_ws = Memory()

    # Show the layers are about to merge
    print in_ws.layers()

    # Init the output layer
    epsg4326 = Projection('epsg:4326')
    schema = Schema(out_file, [
        ('geom', getattr(geoscript.geom, config['geomtype']), epsg4326),
        ('type', str), ('name', str), ('agency', str)
    ])
    out_layer = Layer(schema=schema)
    try:
        out_layer = merge_shapefiles(config, out_layer)
        # Write it to the shape file
        out_ws.add(out_layer)
Example #9
0
 def setUp(self):
     mem = Memory()
     self.l = mem.add(Shapefile('work/states.shp'))