def __init__(self, geom=None, attributes=None): QgsFeature.__init__(self) self.xData = dict() self.caption = "" self.type = "Line" fieldAltitude = "Altitude" fieldName = "Caption" fieldNameBulge = "Bulge" fieldNameGeometryType = "Type" fieldCategory = "CATEGORY" fieldXdataName = "XDataName" fieldXdataPoint = "XDataPoint" fieldXdataTolerence = "XDataTol" fieldCenterPoint = "CenterPt" fieldSurface = "Surface" fields = QgsFields() fields.append(QgsField(fieldAltitude, QVariant.String)) fields.append(QgsField(fieldName, QVariant.String)) fields.append(QgsField(fieldNameBulge, QVariant.String)) fields.append(QgsField(fieldNameGeometryType, QVariant.String)) fields.append(QgsField(fieldCategory, QVariant.String)) fields.append(QgsField(fieldXdataName, QVariant.String)) fields.append(QgsField(fieldXdataPoint, QVariant.String)) fields.append(QgsField(fieldXdataTolerence, QVariant.String)) fields.append(QgsField(fieldCenterPoint, QVariant.String)) fields.append(QgsField(fieldSurface, QVariant.String)) self.setFields(fields) if geom != None: self.setGeometry(geom) if geom.type() == QGis.Line: if len(geom.asPolyline()) == 2: self.type = "Line" else: self.type = "Polyline" elif geom.type() == QGis.Point: self.type = "Point" elif geom.type() == QGis.Polygon: self.type = "Polygon" self.setAttribute("Type", self.type) if attributes != None: attrItems = attributes.items() if len(attrItems) != 0: for attrList in attrItems: if isinstance(attrList[1], Point3D): attrStr = str(attrList[1].get_X()) + "," + str( attrList[1].get_Y()) + "," + str( attrList[1].get_Z()) self.setAttribute(attrList[0], attrStr) elif isinstance(attrList[1], float) or isinstance( attrList[1], int): self.setAttribute(attrList[0], str(attrList[1])) else: self.setAttribute(attrList[0], attrList[1])
def __init__(self, *__args): QgsFeature.__init__(self, *__args) self.geometry_type = None