本文整理汇总了Python中osgeo.ogr.CreateGeometryFromWkb方法的典型用法代码示例。如果您正苦于以下问题:Python ogr.CreateGeometryFromWkb方法的具体用法?Python ogr.CreateGeometryFromWkb怎么用?Python ogr.CreateGeometryFromWkb使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osgeo.ogr
的用法示例。
在下文中一共展示了ogr.CreateGeometryFromWkb方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: insertFrame
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import CreateGeometryFromWkb [as 别名]
def insertFrame(self, scale, mi, inom, frame):
self.checkAndOpenDb()
srid = self.findEPSG()
geoSrid = QgsCoordinateReferenceSystem(int(srid)).geographicCRSAuthId().split(':')[-1]
ogr.UseExceptions()
outputDS = self.buildOgrDatabase()
outputLayer=outputDS.GetLayerByName('public_aux_moldura_a')
newFeat=ogr.Feature(outputLayer.GetLayerDefn())
auxGeom = ogr.CreateGeometryFromWkb(frame)
#set geographic srid from frame
geoSrs = ogr.osr.SpatialReference()
geoSrs.ImportFromEPSG(int(geoSrid))
auxGeom.AssignSpatialReference(geoSrs)
#reproject geom
outSpatialRef = outputLayer.GetSpatialRef()
coordTrans = osr.CoordinateTransformation(geoSrs, outSpatialRef)
auxGeom.Transform(coordTrans)
newFeat.SetGeometry(auxGeom)
newFeat.SetField('mi', mi)
newFeat.SetField('inom', inom)
newFeat.SetField('escala', str(scale))
out=outputLayer.CreateFeature(newFeat)
outputDS.Destroy()
示例2: insertFrame
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import CreateGeometryFromWkb [as 别名]
def insertFrame(self, scale, mi, inom, frame):
self.checkAndOpenDb()
srid = self.findEPSG()
geoSrid = QgsCoordinateReferenceSystem(int(srid)).geographicCRSAuthId().split(':')[-1]
ogr.UseExceptions()
outputDS = self.buildOgrDatabase()
outputLayer=outputDS.GetLayerByName(self.getFrameLayerName())
newFeat=ogr.Feature(outputLayer.GetLayerDefn())
auxGeom = ogr.CreateGeometryFromWkb(frame)
#set geographic srid from frame
geoSrs = ogr.osr.SpatialReference()
geoSrs.ImportFromEPSG(int(geoSrid))
auxGeom.AssignSpatialReference(geoSrs)
#reproject geom
outSpatialRef = outputLayer.GetSpatialRef()
coordTrans = osr.CoordinateTransformation(geoSrs, outSpatialRef)
auxGeom.Transform(coordTrans)
newFeat.SetGeometry(auxGeom)
newFeat.SetField('mi', mi)
newFeat.SetField('inom', inom)
newFeat.SetField('escala', str(scale))
out=outputLayer.CreateFeature(newFeat)
outputDS.Destroy()
示例3: output_ogr
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import CreateGeometryFromWkb [as 别名]
def output_ogr(self, output):
driver = ogr.GetDriverByName( 'ESRI Shapefile' )
if os.path.exists( output['file_name'] ):
driver.DeleteDataSource( output['file_name'] )
source = driver.CreateDataSource( output['file_name'] )
layer = source.CreateLayer( self.layer_dfn.GetName(),
geom_type = self.layer_dfn.GetGeomType(),
srs = self.layer.GetSpatialRef() )
for field in self.fields:
fd = ogr.FieldDefn( str(field['name']), field['type'] )
fd.SetWidth( field['width'] )
if 'precision' in field:
fd.SetPrecision( field['precision'] )
layer.CreateField( fd )
for geometry in self.geometries:
if geometry.geom is not None:
feature = ogr.Feature( feature_def = layer.GetLayerDefn() )
for index, field in enumerate(self.fields):
if field['name'] in geometry.properties:
feature.SetField( index, geometry.properties[field['name']].encode('utf-8') )
else:
feature.SetField( index, '' )
feature.SetGeometryDirectly(
ogr.CreateGeometryFromWkb(
shapely.wkb.dumps(
geometry.geom
)
)
)
layer.CreateFeature( feature )
feature.Destroy()
source.Destroy()
示例4: write_fake_tile
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import CreateGeometryFromWkb [as 别名]
def write_fake_tile(self,tz,tx,ty,NB_FLAGS):
tilefilename = os.path.join(self.tmpoutput, str(tz), str(tx), "%s.%s" % (ty, self.tileext))
# Create directories for the tile
if not os.path.exists(os.path.dirname(tilefilename)):
os.makedirs(os.path.dirname(tilefilename))
if self.options.createtileindexshp and self.tilelayer is not None:
self.ti_cum += 1
tilelayerdefn = self.tilelayer.GetLayerDefn()
feat = ogr.Feature(tilelayerdefn)
feat.SetField('id', self.ti_cum)
feat.SetField('zoom', tz)
feat.SetField('tile', "%s_%s_%s" % (tz, tx, ty))
feat.SetField('children', NB_FLAGS)
b = self.geodetic.TileBounds(tx, ty, tz)
geom = ogr.CreateGeometryFromWkb(makeline(b[0], b[3], b[2], b[1]).wkb)
feat.SetGeometry(geom)
self.tilelayer.CreateFeature(feat)
feat = geom = None
# convert to integer representation of heightmap accordind to Cesium format and append children flags byte
tilearrayint = (numpy.zeros(4096,numpy.dtype('int16')) + 1000) * 5
tilearrayint.tofile(tilefilename)
child_water_bytes = struct.pack('<BB',NB_FLAGS,0x00)
with open(tilefilename,'ab') as outfile:
outfile.write(child_water_bytes)
示例5: _instantiate_geom
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import CreateGeometryFromWkb [as 别名]
def _instantiate_geom(self,g):
"""Attempt to convert the geometry pass in to and ogr Geometry
object. Currently implements the base ogr.CreateGeometryFrom*
methods and will reform fiona geometry dictionaries into a format
that ogr.CreateGeometryFromJson will correctly handle.
"""
if isinstance(g,ogr.Geometry):
# If the input geometry is already an ogr object, create a copy
# of it. This is requred because of a subtle issue that causes
# gdal to crash if the input geom is used elsewhere. The working
# theory is that the geometry is freed when going out of a scope
# while it is needed in the upper level loop. In this code, the
# problem comes about between self.iter_vector and self.get_data
# with mask=True.
return ogr.CreateGeometryFromJson(str(g.ExportToJson()))
# Handle straight ogr GML
try:
return ogr.CreateGeometryFromGML(g)
except:
pass
# Handle straight ogr Wkb
try:
return ogr.CreateGeometryFromWkb(g)
except:
pass
# Handle straight ogr Json
try:
return ogr.CreateGeometryFromJson(g)
except:
pass
# Handle straight ogr Wkt
try:
return ogr.CreateGeometryFromWkt(g)
except:
pass
# Handle fiona Json geometry format
try:
gjson = str(g).replace('(','[').replace(')',']')
return ogr.CreateGeometryFromJson(gjson)
except:
pass
raise ValueError("A geometry object was not able to be created from " \
"the value passed in.")