Skip to content

Instantly share code, notes, and snippets.

@ericbusboom
Created May 14, 2013 18:01
Show Gist options
  • Save ericbusboom/5578068 to your computer and use it in GitHub Desktop.
Save ericbusboom/5578068 to your computer and use it in GitHub Desktop.
def get_group_file(self, srs, name, path):
import ogr, os
drv = ogr.GetDriverByName( "SQLite" )
options = ['SPATIALITE=YES', 'INIT_WITH_EPSG=YES','OGR_SQLITE_SYNCHRONOUS=OFF']
if os.path.exists(path):
os.remove(path)
ds = drv.CreateDataSource(path, options=options)
layer = ds.CreateLayer( name , srs, ogr.wkbPolygon)
fdfn = ogr.FieldDefn('code', ogr.OFTString )
fdfn.SetWidth(7)
layer.CreateField(fdfn)
fdfn = ogr.FieldDefn('name', ogr.OFTString )
fdfn.SetWidth(30)
layer.CreateField(fdfn)
layer.CreateField(ogr.FieldDefn('id', ogr.OFTInteger ))
layer.CreateField(ogr.FieldDefn('area', ogr.OFTInteger ))
def add_feature(layer, g, id, name, code):
#ds,layer = self.get_group_file(parcels.get_srs(),'zone{}'.format(zone_no),self.filesystem.path('extracts','zone{}.sqlite'.format(zone_no)))
feature = ogr.Feature(layer.GetLayerDefn())
feature.SetField('name', str(name))
feature.SetField('code', str(code))
feature.SetField('id', id)
feature.SetField('area', g.GetArea())
feature.SetGeometry(g)
layer.CreateFeature(feature)
feature.Destroy()
return ds, layer, add_feature
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment