我们从Python开源项目中,提取了以下7个代码示例,用于说明如何使用osgeo.ogr.wkbPoint()。
def SetZ (poGeom, dfZ ): if poGeom is None: return eGType = wkbFlatten(poGeom.GetGeometryType()) if eGType == ogr.wkbPoint: poGeom.SetPoint(0, poGeom.GetX(), poGeom.GetY(), dfZ) elif eGType == ogr.wkbLineString or \ eGType == ogr.wkbLinearRing: for i in range(poGeom.GetPointCount()): poGeom.SetPoint(i, poGeom.GetX(i), poGeom.GetY(i), dfZ) elif eGType == ogr.wkbPolygon or \ eGType == ogr.wkbMultiPoint or \ eGType == ogr.wkbMultiLineString or \ eGType == ogr.wkbMultiPolygon or \ eGType == ogr.wkbGeometryCollection: for i in range(poGeom.GetGeometryCount()): SetZ(poGeom.GetGeometryRef(i), dfZ) #********************************************************************** # SetupTargetLayer() #**********************************************************************
def SetZ (poGeom, dfZ ): if poGeom is None: return eGType = wkbFlatten(poGeom.GetGeometryType()) if eGType == ogr.wkbPoint: poGeom.SetPoint(0, poGeom.GetX(), poGeom.GetY(), dfZ) elif eGType == ogr.wkbLineString or \ eGType == ogr.wkbLinearRing: for i in range(poGeom.GetPointCount()): poGeom.SetPoint(i, poGeom.GetX(i), poGeom.GetY(i), dfZ) elif eGType == ogr.wkbPolygon or \ eGType == ogr.wkbMultiPoint or \ eGType == ogr.wkbMultiLineString or \ eGType == ogr.wkbMultiPolygon or \ eGType == ogr.wkbGeometryCollection: for i in range(poGeom.GetGeometryCount()): SetZ(poGeom.GetGeometryRef(i), dfZ) #/************************************************************************/ #/* SetupTargetLayer() */ #/************************************************************************/
def get_idx_as_shp(self, path, gt, wkt): ''' Exports a Shapefile containing the locations of the extracted endmembers. Assumes the coordinates are in decimal degrees. ''' coords = pixel_to_xy(self.get_idx(), gt=gt, wkt=wkt, dd=True) driver = ogr.GetDriverByName('ESRI Shapefile') ds = driver.CreateDataSource(path) srs = osr.SpatialReference() srs.ImportFromEPSG(4326) layer = ds.CreateLayer(path.split('.')[0], srs, ogr.wkbPoint) for pair in coords: feature = ogr.Feature(layer.GetLayerDefn()) # Create the point from the Well Known Text point = ogr.CreateGeometryFromWkt('POINT(%f %f)' % pair) feature.SetGeometry(point) # Set the feature geometry layer.CreateFeature(feature) # Create the feature in the layer feature.Destroy() # Destroy the feature to free resources # Destroy the data source to free resources ds.Destroy()
def _get_vector_attributes(self,ds,attrs): logging.debug("[FileMan][_get_vector_attributes]") layer = ds.GetLayer() # extent extent = layer.GetExtent() logging.debug("[FileMan][_get_vector_attributes] Extent: %s" % repr(extent) ) attrs["extent"] = (extent[0],extent[2],extent[1],extent[3]) # features count attrs["features_count"] = layer.GetFeatureCount() # geom type ftype = layer.GetGeomType() if ftype == ogr.wkbPolygon: #3 attrs["type"] = "polygon" elif ftype == ogr.wkbPoint: #1 attrs["type"] = "point" elif ftype == ogr.wkbLineString: #2 attrs["type"] = "line" elif ftype == ogr.wkbPolygon25D: attrs["type"] = "polygon" else: attrs["type"] = "none/unknown" # 0 or anything else # srs sr = layer.GetSpatialRef() logging.debug("[FileMan][_get_vector_attributes] Spatial Reference from layer.GetSpatialRef() : %s" % repr(sr) ) if sr: attrs["prj"]= self._get_prj(sr) else: attrs["prj"] = "unknown" # Done return attrs
def _check_src(self, src): """ Basic check of source elements (sequence of points or polygons). - array cast of source elements - create ogr_src datasource/layer holding src points/polygons - transforming source grid points/polygons to ogr.geometries on ogr.layer """ ogr_src = io.gdal_create_dataset('Memory', 'out', gdal_type=gdal.OF_VECTOR) try: # is it ESRI Shapefile? ds_in, tmp_lyr = io.open_shape(src, driver=ogr. GetDriverByName('ESRI Shapefile')) ogr_src_lyr = ogr_src.CopyLayer(tmp_lyr, self._name) if self._srs is None: self._srs = ogr_src_lyr.GetSpatialRef() except IOError: # no ESRI shape file raise # all failed? then it should be sequence or numpy array except RuntimeError: src = np.array(src) # create memory datasource, layer and create features if src.ndim == 2: geom_type = ogr.wkbPoint # no Polygons, just Points else: geom_type = ogr.wkbPolygon fields = [('index', ogr.OFTInteger)] georef.ogr_create_layer(ogr_src, self._name, srs=self._srs, geom_type=geom_type, fields=fields) georef.ogr_add_feature(ogr_src, src, name=self._name) return ogr_src
def test_ogr_create_layer(self): ds = gdal_create_dataset('Memory', 'test', gdal_type=gdal.OF_VECTOR) self.assertRaises(TypeError, lambda: georef.ogr_create_layer(ds, 'test')) lyr = georef.ogr_create_layer(ds, 'test', geom_type=ogr.wkbPoint, fields=[('test', ogr.OFTReal)]) self.assertTrue(isinstance(lyr, ogr.Layer))
def _create_layer(self, type, srid, attributes, title): """ Creates an empty spatialite layer :param type: 'Point', 'LineString', 'Polygon', etc. :param srid: CRS ID of the layer :param attributes: list of (attribute_name, attribute_type, attribute_typename) :param title: title of the layer """ driver = ogr.GetDriverByName('GPKG') ds = driver.CreateDataSource(self.output_local_file) layer = ds.CreateLayer("meta", geom_type = ogr.wkbNone) layer.CreateField(ogr.FieldDefn('key', ogr.OFTString)) layer.CreateField(ogr.FieldDefn('value', ogr.OFTString)) if srid: wkbType = { 'point': ogr.wkbPoint, 'multipoint': ogr.wkbMultiPoint, 'linestring': ogr.wkbLineString, 'multilinestring': ogr.wkbMultiLineString, 'polygon': ogr.wkbPolygon, 'multipolygon': ogr.wkbMultiPolygon }[type] srs = osr.SpatialReference() srs.ImportFromEPSGA(int(srid)) else: wkbType = ogr.wkbNone srs = None layer = ds.CreateLayer("data", srs, wkbType, ['FID=id']) layer.CreateField(ogr.FieldDefn('id', ogr.OFTInteger64)) layer.CreateField(ogr.FieldDefn('fid', ogr.OFTString)) layer.CreateField(ogr.FieldDefn('_xml_', ogr.OFTString)) att_type_map = {QVariant.String : ogr.OFTString, QVariant.Int : ogr.OFTInteger, QVariant.Double: ogr.OFTReal, QVariant.DateTime: ogr.OFTDateTime} for aname, atype in attributes: layer.CreateField(ogr.FieldDefn(aname, att_type_map[atype])) # update fields layer.ResetReading() qgs_layer = QgsVectorLayer("{}|layername=data".format(self.output_local_file), title, "ogr") return qgs_layer