當前位置: 首頁>>代碼示例>>Python>>正文


Python QgsWkbTypes.LineGeometry方法代碼示例

本文整理匯總了Python中qgis.core.QgsWkbTypes.LineGeometry方法的典型用法代碼示例。如果您正苦於以下問題:Python QgsWkbTypes.LineGeometry方法的具體用法?Python QgsWkbTypes.LineGeometry怎麽用?Python QgsWkbTypes.LineGeometry使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在qgis.core.QgsWkbTypes的用法示例。


在下文中一共展示了QgsWkbTypes.LineGeometry方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: highlight

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def highlight(self, point):
        currExt = self.canvas.extent()

        leftPt = QgsPoint(currExt.xMinimum(), point.y())
        rightPt = QgsPoint(currExt.xMaximum(), point.y())

        topPt = QgsPoint(point.x(), currExt.yMaximum())
        bottomPt = QgsPoint(point.x(), currExt.yMinimum())

        horizLine = QgsGeometry.fromPolyline([leftPt, rightPt])
        vertLine = QgsGeometry.fromPolyline([topPt, bottomPt])

        self.crossRb.reset(QgsWkbTypes.LineGeometry)
        self.crossRb.addGeometry(horizLine, None)
        self.crossRb.addGeometry(vertLine, None)

        QTimer.singleShot(700, self.resetRubberbands) 
開發者ID:NationalSecurityAgency,項目名稱:qgis-latlontools-plugin,代碼行數:19,代碼來源:latLonTools.py

示例2: enableTools

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def enableTools(self):
        self.digitizeAction.setEnabled(False)
        self.lineDigitizeAction.setEnabled(False)
        self.flipHorizontalAction.setEnabled(False)
        self.flipVerticalAction.setEnabled(False)
        self.rotate180Action.setEnabled(False)
        self.rotate90CWAction.setEnabled(False)
        self.rotate90CCWAction.setEnabled(False)
        layer = self.iface.activeLayer()

        if not layer or not layer.isValid() or (layer.type() != QgsMapLayer.VectorLayer) or not layer.isEditable():
            return
        wkbtype = layer.wkbType()
        geomtype = QgsWkbTypes.geometryType(wkbtype)
        self.lineDigitizeAction.setEnabled(True)
        if geomtype == QgsWkbTypes.PointGeometry or geomtype == QgsWkbTypes.LineGeometry:
            self.digitizeAction.setEnabled(True)
        if geomtype == QgsWkbTypes.LineGeometry or geomtype == QgsWkbTypes.PolygonGeometry:
            self.flipHorizontalAction.setEnabled(True)
            self.flipVerticalAction.setEnabled(True)
            self.rotate180Action.setEnabled(True)
            self.rotate90CWAction.setEnabled(True)
            self.rotate90CCWAction.setEnabled(True) 
開發者ID:NationalSecurityAgency,項目名稱:qgis-shapetools-plugin,代碼行數:25,代碼來源:shapeTools.py

示例3: canvasPressEvent

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def canvasPressEvent(self, event):
        '''Capture the coordinate when the mouse button has been released.'''
        pt = self.snappoint(event.originalPixelPoint())
        self.removeVertexMarker()
        layer = self.iface.activeLayer()
        if layer is None:
            return
        if self.lineDigitizerDialog is None:
            from .lineDigitizer import LineDigitizerWidget
            self.lineDigitizerDialog = LineDigitizerWidget(self.iface, self.iface.mainWindow())

        if layer.geometryType() == QgsWkbTypes.LineGeometry:
            self.lineDigitizerDialog.closeLineCheckBox.setEnabled(True)
        else:
            self.lineDigitizerDialog.closeLineCheckBox.setEnabled(False)
        try:
            canvasCRS = self.canvas.mapSettings().destinationCrs()
            transform = QgsCoordinateTransform(canvasCRS, epsg4326, QgsProject.instance())
            pt4326 = transform.transform(pt.x(), pt.y())
            self.lineDigitizerDialog.setPoint(pt4326)
            self.lineDigitizerDialog.valuesTextEdit.clear()
            self.lineDigitizerDialog.show()
        except Exception:
            self.iface.messageBar().pushMessage("", tr("Clicked location is invalid"), level=Qgis.Warning, duration=4) 
開發者ID:NationalSecurityAgency,項目名稱:qgis-shapetools-plugin,代碼行數:26,代碼來源:lineDigitizer.py

示例4: __init__

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def __init__(self, iface):
        self.iface = iface
        self.canvas = iface.mapCanvas()
        self.crossRb = QgsRubberBand(self.canvas, QgsWkbTypes.LineGeometry)
        self.crossRb.setColor(Qt.red)
        self.provider = LatLonToolsProvider()
        self.toolbar = self.iface.addToolBar('Lat Lon Tools Toolbar')
        self.toolbar.setObjectName('LatLonToolsToolbar') 
開發者ID:NationalSecurityAgency,項目名稱:qgis-latlontools-plugin,代碼行數:10,代碼來源:latLonTools.py

示例5: RemoveCanvasRubberbands

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def RemoveCanvasRubberbands(self):
        ''' Remove Canvas Rubberbands '''
        self.poly_Canvas_RubberBand.reset()
        self.Track_Canvas_RubberBand.reset(QgsWkbTypes.LineGeometry)
        self.Cursor_Canvas_RubberBand.reset(QgsWkbTypes.PointGeometry) 
開發者ID:All4Gis,項目名稱:QGISFMV,代碼行數:7,代碼來源:QgsVideo.py

示例6: populateLayers

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def populateLayers(self):
        """
        Populates the layer combo box
        """
        self.layerCombo.clear()
        
        self.layerCombo.addItem(self.tr('Select a Layer'))
        
        layers = self.iface.mapCanvas().layers()
        for layer in layers:
            if isinstance(layer, QgsVectorLayer) and layer.geometryType() == QgsWkbTypes.LineGeometry:
                self.layerCombo.addItem(layer.name()) 
開發者ID:dsgoficial,項目名稱:DsgTools,代碼行數:14,代碼來源:calc_contour.py

示例7: reset

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def reset(self):
        """
        Resets the tool
        """
        if self.rubberBand:
            self.rubberBand.reset(QgsWkbTypes.LineGeometry)
        self.isEmittingPoint = False
        self.defineRubberBand() 
開發者ID:dsgoficial,項目名稱:DsgTools,代碼行數:10,代碼來源:dsg_line_tool.py

示例8: setToolEnabled

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def setToolEnabled(self, layer=None):
        """
        Checks if it is possible to use tool given layer editting conditions and type.
        :param layer: (QgsVectorLayer) layer that may have its lines flipped.
        :return: (bool) whether tool may be used.
        """
        if not isinstance(layer, QgsVectorLayer):
            layer = self.iface.mapCanvas().currentLayer()
        if not layer or not isinstance(layer, QgsVectorLayer) or layer.geometryType() != QgsWkbTypes.LineGeometry or not layer.isEditable():
            enabled = False
        else:
            enabled = True
        self.toolAction.setEnabled(enabled) if self.toolAction else None
        return enabled 
開發者ID:dsgoficial,項目名稱:DsgTools,代碼行數:16,代碼來源:flipLineTool.py

示例9: endGeometry

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def endGeometry(self):
        if len(self.geometry) > 2:
            if self.iface.activeLayer().geometryType() == QgsWkbTypes.PolygonGeometry:
                geom = QgsGeometry.fromPolygonXY([self.geometry])
            elif self.iface.activeLayer().geometryType() == QgsWkbTypes.LineGeometry:
                geom = QgsGeometry.fromPolylineXY(self.geometry)
            self.rubberBand.setToGeometry(geom, self.iface.activeLayer())
            self.createGeometry(geom) 
開發者ID:dsgoficial,項目名稱:DsgTools,代碼行數:10,代碼來源:polygon.py

示例10: endGeometryFree

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def endGeometryFree(self):
        if len(self.geometry) > 2:
            if self.iface.activeLayer().geometryType() == QgsWkbTypes.PolygonGeometry:
                geom = QgsGeometry.fromPolygonXY([self.geometry])
            elif self.iface.activeLayer().geometryType() == QgsWkbTypes.LineGeometry:
                geom = QgsGeometry.fromPolylineXY(self.geometry + [self.geometry[0]])
            self.rubberBand.setToGeometry(geom, self.iface.activeLayer())
            self.createGeometry(geom) 
開發者ID:dsgoficial,項目名稱:DsgTools,代碼行數:10,代碼來源:polygon.py

示例11: __init__

# 需要導入模塊: from qgis.core import QgsWkbTypes [as 別名]
# 或者: from qgis.core.QgsWkbTypes import LineGeometry [as 別名]
def __init__(self, parent=None):
        ''' Constructor '''
        super().__init__(parent)
        self.surface = VideoWidgetSurface(self)
        self.setAttribute(Qt.WA_OpaquePaintEvent)

        self.Tracking_Video_RubberBand = QRubberBand(QRubberBand.Rectangle, self)
        self.Censure_RubberBand = QRubberBand(QRubberBand.Rectangle, self)

        color_blue = QColor(Qt.blue)
        color_black = QColor(Qt.black)
        color_amber = QColor(252, 215, 108)

        pal_blue = QPalette()
        pal_blue.setBrush(QPalette.Highlight, QBrush(color_blue))
        self.Tracking_Video_RubberBand.setPalette(pal_blue)

        pal_black = QPalette()
        pal_black.setBrush(QPalette.Highlight, QBrush(color_black))
        self.Censure_RubberBand.setPalette(pal_black)

        self._interaction = InteractionState()
        self._filterSatate = FilterState()

        self._isinit = False
        self._MGRS = False
        self.gt = None

        self.drawCesure = []
        self.poly_coordinates, self.drawPtPos, self.drawLines, self.drawMeasureDistance, self.drawMeasureArea, self.drawPolygon = [], [], [], [], [], []
        # Draw Polygon Canvas Rubberband
        self.poly_Canvas_RubberBand = QgsRubberBand(
            iface.mapCanvas(), True)  # Polygon type
        # set rubber band style
        self.poly_Canvas_RubberBand.setColor(color_amber)
        self.poly_Canvas_RubberBand.setWidth(3)

        # Tracking Canvas Rubberband
        self.Track_Canvas_RubberBand = QgsRubberBand(
            iface.mapCanvas(), QgsWkbTypes.LineGeometry)
        # set rubber band style
        self.Track_Canvas_RubberBand.setColor(color_blue)
        self.Track_Canvas_RubberBand.setWidth(5)

        # Cursor Canvas Rubberband
        self.Cursor_Canvas_RubberBand = QgsRubberBand(
            iface.mapCanvas(), QgsWkbTypes.PointGeometry)
        self.Cursor_Canvas_RubberBand.setWidth(4)
        self.Cursor_Canvas_RubberBand.setColor(QColor(255, 100, 100, 250))
        self.Cursor_Canvas_RubberBand.setIcon(QgsRubberBand.ICON_FULL_DIAMOND)

        self.parent = parent.parent()

        palette = self.palette()
        palette.setColor(QPalette.Background, Qt.transparent)
        self.setPalette(palette)

        self.origin, self.dragPos = QPoint(), QPoint()
        self.tapTimer = QBasicTimer()
        self.brush = QBrush(color_black)
        self.blue_Pen = QPen(color_blue, 3) 
開發者ID:All4Gis,項目名稱:QGISFMV,代碼行數:63,代碼來源:QgsVideo.py


注:本文中的qgis.core.QgsWkbTypes.LineGeometry方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。