Skip to content

Instantly share code, notes, and snippets.

@oscar9
Created October 30, 2019 11:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oscar9/293550287ff9e933d1d2d6e9719c758f to your computer and use it in GitHub Desktop.
Save oscar9/293550287ff9e933d1d2d6e9719c758f to your computer and use it in GitHub Desktop.
Add group of layers to the TOC #gvsig #scripting
# encoding: utf-8
import gvsig
from gvsig import geom
def newShape(name):
# Creating new layer
ft = gvsig.createSchema()
ft.append("ID", "INTEGER")
ft.append("GEOMETRY", "GEOMETRY")
ft.get('GEOMETRY').setGeometryType(geom.POINT,geom.D2)
layer = gvsig.createShape(ft, prefixname=name)
store = layer.getFeatureStore()
layer.edit()
layer.append({"ID":1,"GEOMETRY":geom.createPoint(geom.D2, 10, 20)})
layer.append({"ID":2,"GEOMETRY":geom.createPoint(geom.D2, 20, 20)})
layer.append({"ID":3,"GEOMETRY":geom.createPoint(geom.D2, 20, 30)})
layer.commit()
return layer
def main(*args):
layer1 = newShape("layer01")
layer2 = newShape("layer02")
layer3 = newShape("layer03")
mapContext = gvsig.currentView().getMapContext()
flayers = mapContext.getLayers()
from org.gvsig.fmap.mapcontext.layers import FLayers
# habra en la 2.5 final un group = flayers.createFLayerGroup(name)
# al acabar -> flayers.add(group)
groupA = FLayers()
groupA.setMapContext(mapContext)
groupA.setParentLayer(mapContext.getLayers())
groupA.setName("group A")
groupB = FLayers()
groupB.setMapContext(mapContext)
groupB.setParentLayer(mapContext.getLayers())
groupB.setName("group B")
groupA.add(layer1)
groupB.add(layer2)
groupB.add(layer3)
flayers.add(groupA)
flayers.add(groupB)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment