def __initQadInfo(self): # inizializza entityType, qadGeom, dimStyle, dimId if self.isInitialized() == False: return QadEntityGeomTypeEnum.NONE self.dimStyle = None self.dimId = None g = self.getGeometry() if g is None: return QadEntityGeomTypeEnum.NONE # trasformo la geometria nel crs del canvas per lavorare con coordinate piane xy coordTransform = QgsCoordinateTransform(self.layer.crs(), iface.mapCanvas().mapRenderer().destinationCrs()) g.transform(coordTransform) wkbType = g.wkbType() if wkbType == QGis.WKBPoint: from qad_dim import QadDimStyles # to avoid cyclic import # verifico se l'entità appartiene ad uno stile di quotatura dimStyle, dimId = QadDimStyles.getDimIdByEntity(self) if (dimStyle is not None) and (dimId is not None): self.dimStyle = dimStyle # stile di quotatura di appartenenza self.dimId = dimId # codice quotatura di appartenenza if qad_layer.isTextLayer(self.layer): self.entityType = QadEntityGeomTypeEnum.TEXT elif qad_layer.isSymbolLayer(self.layer): self.entityType = QadEntityGeomTypeEnum.SYMBOL self.qadGeom = g.asPoint() # un punto if wkbType == QGis.WKBMultiPoint: if qad_layer.isTextLayer(self.layer): self.entityType = QadEntityGeomTypeEnum.TEXT elif qad_layer.isSymbolLayer(self.layer): self.entityType = QadEntityGeomTypeEnum.SYMBOL self.qadGeom = g.asMultiPoint() # lista di punti elif wkbType == QGis.WKBLineString: from qad_dim import QadDimStyles # to avoid cyclic import # verifico se l'entità appartiene ad uno stile di quotatura dimStyle, dimId = QadDimStyles.getDimIdByEntity(self) if (dimStyle is not None) and (dimId is not None): self.entityType = QadEntityGeomTypeEnum.DIMENSION_COMPONENT self.dimStyle = dimStyle # stile di quotatura di appartenenza self.dimId = dimId # codice quotatura di appartenenza self.entityType, self.qadGeom = self.__fromPoyline(g.asPolyline()) elif wkbType == QGis.WKBMultiLineString: self.entityType = [] self.qadGeom = [] lineList = g.asMultiPolyline() # vettore di linee for line in lineList: entityType, qadGeom = self.__fromPoyline(g.asPolyline()) self.entityType.append(entityType) self.qadGeom.append(qadGeom) elif wkbType == QGis.WKBPolygon: self.entityType = [] self.qadGeom = [] polygon = g.asPolygon() # vettore di linee for line in polygon: entityType, qadGeom = self.__fromPoyline(line) self.entityType.append(entityType) self.qadGeom.append(qadGeom) elif wkbType == QGis.WKBMultiPolygon: self.entityType = [] self.qadGeom = [] polygonList = g.asMultiPolygon() # vettore di poligoni for polygon in polygonList: partialEntityType = [] partialQadGeom = [] for line in polygon: entityType, qadGeom = self.__fromPoyline(line) partialEntityType.append(entityType) partialQadGeom.append(qadGeom) self.entityType.append(partialEntityType) self.qadGeom.append(partialQadGeom)
def __initQadInfo(self): # inizializza entityType, qadGeom, dimStyle, dimId if self.isInitialized() == False: return QadEntityGeomTypeEnum.NONE self.dimStyle = None self.dimId = None g = self.getGeometry() if g is None: return QadEntityGeomTypeEnum.NONE # trasformo la geometria nel crs del canvas per lavorare con coordinate piane xy coordTransform = QgsCoordinateTransform( self.layer.crs(), iface.mapCanvas().mapRenderer().destinationCrs()) g.transform(coordTransform) wkbType = g.wkbType() if wkbType == QGis.WKBPoint: from qad_dim import QadDimStyles # to avoid cyclic import # verifico se l'entità appartiene ad uno stile di quotatura dimStyle, dimId = QadDimStyles.getDimIdByEntity(self) if (dimStyle is not None) and (dimId is not None): self.dimStyle = dimStyle # stile di quotatura di appartenenza self.dimId = dimId # codice quotatura di appartenenza if qad_layer.isTextLayer(self.layer): self.entityType = QadEntityGeomTypeEnum.TEXT elif qad_layer.isSymbolLayer(self.layer): self.entityType = QadEntityGeomTypeEnum.SYMBOL self.qadGeom = g.asPoint() # un punto if wkbType == QGis.WKBMultiPoint: if qad_layer.isTextLayer(self.layer): self.entityType = QadEntityGeomTypeEnum.TEXT elif qad_layer.isSymbolLayer(self.layer): self.entityType = QadEntityGeomTypeEnum.SYMBOL self.qadGeom = g.asMultiPoint() # lista di punti elif wkbType == QGis.WKBLineString: from qad_dim import QadDimStyles # to avoid cyclic import # verifico se l'entità appartiene ad uno stile di quotatura dimStyle, dimId = QadDimStyles.getDimIdByEntity(self) if (dimStyle is not None) and (dimId is not None): self.entityType = QadEntityGeomTypeEnum.DIMENSION_COMPONENT self.dimStyle = dimStyle # stile di quotatura di appartenenza self.dimId = dimId # codice quotatura di appartenenza self.entityType, self.qadGeom = self.__fromPoyline(g.asPolyline()) elif wkbType == QGis.WKBMultiLineString: self.entityType = [] self.qadGeom = [] lineList = g.asMultiPolyline() # vettore di linee for line in lineList: entityType, qadGeom = self.__fromPoyline(g.asPolyline()) self.entityType.append(entityType) self.qadGeom.append(qadGeom) elif wkbType == QGis.WKBPolygon: self.entityType = [] self.qadGeom = [] polygon = g.asPolygon() # vettore di linee for line in polygon: entityType, qadGeom = self.__fromPoyline(line) self.entityType.append(entityType) self.qadGeom.append(qadGeom) elif wkbType == QGis.WKBMultiPolygon: self.entityType = [] self.qadGeom = [] polygonList = g.asMultiPolygon() # vettore di poligoni for polygon in polygonList: partialEntityType = [] partialQadGeom = [] for line in polygon: entityType, qadGeom = self.__fromPoyline(line) partialEntityType.append(entityType) partialQadGeom.append(qadGeom) self.entityType.append(partialEntityType) self.qadGeom.append(partialQadGeom)