def __init__(self, canvas, areaType): QgsMapTool.__init__(self, canvas) self.mCanvas = canvas self.areaType = areaType self.annotation = None self.rubberBand = QgsRubberBand(canvas, QGis.Point) self.rubberBand.setColor(Qt.red) self.rubberBand.setWidth(10) self.rubberBandClick = QgsRubberBand(canvas, QGis.Point) self.rubberBandClick.setColor(Qt.green) self.rubberBandClick.setWidth(3) self.obstaclesLayerList = QgisHelper.getSurfaceLayers(SurfaceTypes.Obstacles) self.demLayerList = QgisHelper.getSurfaceLayers(SurfaceTypes.DEM) self.mRubberBand = None self.mRubberBand0 = QgsRubberBand( self.mCanvas, QGis.Polygon ) self.mCursor = Qt.ArrowCursor self.mFillColor = QColor( 254, 178, 76, 63 ) self.mBorderColour = QColor( 254, 58, 29, 100 ) self.mRubberBand0.setBorderColor( self.mBorderColour ) self.polygonGeom = None self.drawFlag = False self.mSnapper = QgsMapCanvasSnapper(canvas) self.resultPolylineArea = PolylineArea() # self.constructionLayer = constructionLayer self.menuString = "" self.isPrimaryPolylineStarted = False self.primaryPolyline = PolylineArea()
def getExtentForLocate(self, sourceRow): surfaceLayers = QgisHelper.getSurfaceLayers(self.surfaceType) rect = QgsRectangle() rect.setMinimal() for sfLayer in surfaceLayers: rect.combineExtentWith(sfLayer.extent()) return rect
def btnEvaluate_Click(self): try: self.obstaclesModel = PinSVisualSegmentDepObstacles( [self.pinSVisualSegmentDepManouvering]) rnpArMapLayers = QgisHelper.getSurfaceLayers( SurfaceTypes.PinSVisualSegmentDep) self.obstaclesModel.loadObstacles(rnpArMapLayers) self.obstaclesModel.setLocateBtn(self.ui.btnLocate) self.ui.tblObstacles.setModel(self.obstaclesModel) self.obstaclesModel.setTableView(self.ui.tblObstacles) self.obstaclesModel.setHiddenColumns(self.ui.tblObstacles) self.ui.cmbSurface.setCurrentIndex(0) self.ui.tabControls.setCurrentIndex(1) self.ui.cmbSurface.clear() if self.ui.cmbSegmentType.SelectedIndex != 0: self.ui.cmbSurface.addItems([ "All", PinsSurfaceType.PinsSurfaceType_LevelOIS, PinsSurfaceType.PinsSurfaceType_OCS ]) else: self.ui.cmbSurface.addItem("All") self.ui.cmbSurface.addItem(PinsSurfaceType.PinsSurfaceType_OIS) self.ui.btnExportResult.setEnabled(True) # raise ValueError, "" except UserWarning as e: QMessageBox.warning(self, "Information", e.message)
def btnEvaluate_Click(self): try: if self.obstaclesModel == None: self.initObstaclesModel() if self.obstaclesModel == None: return surfaceLayers = QgisHelper.getSurfaceLayers(self.surfaceType, self.surfaceSubGroupNames) self.initObstaclesModel() self.obstaclesModel.loadObstacles(surfaceLayers) self.obstaclesModel.setLocateBtn(self.ui.btnLocate) self.ui.tblObstacles.setModel(self.obstaclesModel) self.obstaclesModel.setTableView(self.ui.tblObstacles) self.obstaclesModel.setHiddenColumns(self.ui.tblObstacles) self.ui.tabCtrlGeneral.setCurrentIndex(1) if self.ui.cmbObstSurface.isVisible(): self.ui.cmbObstSurface.clear() self.initSurfaceCombo() self.ui.cmbObstSurface.setCurrentIndex(0) self.ui.btnExportResult.setEnabled(True) self.setResultPanel() except UserWarning as e: QMessageBox.warning(self, "Information", e.message)
def loadObstacles(self, surfaceLayers): if self.source.rowCount() > 0: self.source.clear() self.source.setHorizontalHeaderLabels(self.fixedColumnLabels) demEvaluateAg = None existingDemFlag = False obstacleLayersDEM = QgisHelper.getSurfaceLayers(SurfaceTypes.DEM) obstacleLayers = QgisHelper.getSurfaceLayers(SurfaceTypes.Obstacles) if obstacleLayersDEM != None and len(obstacleLayersDEM) > 0: if QMessageBox.question( None, "Question", "Do you want to use DEM for evaluating Obstacle?", QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes: self.loadObstaclesDEM(obstacleLayersDEM, surfaceLayers) if obstacleLayers != None and len(obstacleLayers) > 0: # if QMessageBox.question(None, "Question", "Do you want to use DEM for evaluating Obstacle?", QMessageBox.Yes | QMessageBox.No) == QMessageBox.No: self.loadObstaclesVector(obstacleLayers, surfaceLayers) return True
def __init__(self, canvas, dataBaseProcedureData0, point3d0, procEntityListType0): self.canvas = canvas QgsMapToolEmitPoint.__init__(self, self.canvas) self.mSnapper = QgsMapCanvasSnapper(canvas) self.rubberBand = QgsRubberBand(canvas, QGis.Point) self.rubberBand.setColor(Qt.red) self.rubberBand.setWidth(10) self.rubberBandClick = QgsRubberBand(canvas, QGis.Point) self.rubberBandClick.setColor(Qt.green) self.rubberBandClick.setWidth(3) self.obstaclesLayerList = QgisHelper.getSurfaceLayers( SurfaceTypes.Obstacles) self.demLayerList = QgisHelper.getSurfaceLayers(SurfaceTypes.DEM) self.reset() self.dataBaseProcedureData_0 = dataBaseProcedureData0 self.point3d_0 = point3d0 self.procEntityListType_0 = procEntityListType0
def getExtentForLocate(self, sourceRow): surfaceType = self.source.item(sourceRow, self.IndexSurface).text() surfaceLayers = QgisHelper.getSurfaceLayers(self.surfaceType) rect = QgsRectangle() rect.setMinimal() for sfLayer in surfaceLayers: features = sfLayer.getFeatures() for feature in features: surfaceString = feature.attribute("surface").toString() if surfaceString == surfaceType: geom = feature.geometry() rect.combineExtentWith(geom.boundingBox()) return rect
def getExtentForLocate(self, sourceRow): extent = None surfaceType = None if self.IndexSurface < 0: surfaceType = self.surfaceType else: surfaceType = self.source.item(sourceRow, self.IndexSurface).text() surfaceLayers = QgisHelper.getSurfaceLayers(self.surfaceType) for sfLayer in surfaceLayers: lId = sfLayer.name() if lId.contains(surfaceType): extent = sfLayer.extent() break return extent
def __init__(self, canvas, annotation=None): self.canvas = canvas # self.tableView = tableView # self.standardItemModel = standardItemModel # self.txtXCoord = txtXCoord # self.txtYCoord = txtYCoord QgsMapToolEmitPoint.__init__(self, self.canvas) self.annotation = annotation self.mSnapper = QgsMapCanvasSnapper(canvas) self.rubberBand = QgsRubberBand(canvas, QGis.Point) self.rubberBand.setColor(Qt.red) self.rubberBand.setWidth(10) self.rubberBandClick = QgsRubberBand(canvas, QGis.Point) self.rubberBandClick.setColor(Qt.green) self.rubberBandClick.setWidth(3) self.obstaclesLayerList = QgisHelper.getSurfaceLayers( SurfaceTypes.Obstacles) self.demLayerList = QgisHelper.getSurfaceLayers(SurfaceTypes.DEM) # lblDoc = QTextDocument(label) # self.annotation.setDocument(lblDoc) # self.annotation.setFrameBackgroundColor(QColor(0,0,0,0)) # self.annotation.setFrameSize( QSizeF( 30, 20 ) ) self.reset()