Exemplo n.º 1
0
 def startRubberBand(self, pointMap, layer):
     #Método para iniciar o rubberBand da aquisição
     #Parâmetro de entrada: pointMap (Primeiro ponto da feição em aquisição), layer (Camada ativa)
     self.setDrawingState(True)
     self.setGeometryType(layer.geometryType())
     if self.isPolygon():
         rubberBand = gui.QgsRubberBand(self.getCanvas(),
                                        core.QgsWkbTypes.PolygonGeometry)
         rubberBand.setColor(QtGui.QColor(255, 0, 0, 63))
         rubberBand.setWidth(2)
     else:
         rubberBand = gui.QgsRubberBand(self.getCanvas(),
                                        core.QgsWkbTypes.LineGeometry)
         rubberBand.setColor(QtGui.QColor(255, 0, 0, 150))
         rubberBand.setWidth(1)
     rubberBand.addPoint(pointMap)
     self.setRubberBand(rubberBand)
Exemplo n.º 2
0
 def startRubberBandToStopState(self, point):
     #Método para iniciar o rubberBand do pause da ferramenta
     #Parâmetro de entrada: point (Último ponto da feição em aquisição)
     rubberBandToStopState = self.getRubberBandToStopState()
     if rubberBandToStopState:
         rubberBandToStopState.reset()
     if self.isPolygon():
         rubberBand = gui.QgsRubberBand(self.getCanvas(), core.QGis.Polygon)
         rubberBand.setColor(QtGui.QColor(255, 0, 0, 63))
         rubberBand.setWidth(2)
     else:
         rubberBand = gui.QgsRubberBand(self.getCanvas(), core.QGis.Line)
         rubberBand.setColor(QtGui.QColor(255, 0, 0, 150))
         rubberBand.setWidth(1)
     rubberBand.setLineStyle(QtCore.Qt.DotLine)
     rubberBand.addPoint(point)
     self.setRubberBandToStopState(rubberBand)
Exemplo n.º 3
0
 def resetRubberBand(self):
     if self.rubberBand:
         self.rubberBand.reset()
     self.rubberBand = gui.QgsRubberBand(
         iface.mapCanvas(), 
         geometryType = core.QgsWkbTypes.PointGeometry
     )
     self.rubberBand.setSvgIcon(self.getSettings()['svgIconPath'], QPoint(-12.5, -48))
     iface.mapCanvas().refresh()
      def highlight():
        def removeRB():
          rb.reset( True )
          self.canvas.scene().removeItem( rb )

        rb = QgsGui.QgsRubberBand( self.canvas, QgsCore.QGis.Polygon)
        rb.setBorderColor( QtGui.QColor( 255,  0, 0 ) )
        rb.setWidth( 2 )
        rb.setToGeometry( QgsCore.QgsGeometry.fromRect( extent ), None )
        QtCore.QTimer.singleShot( 2000, removeRB )
Exemplo n.º 5
0
 def start(self):
     self.tool = gui.QgsMapToolEmitPoint(iface.mapCanvas())
     self.tool.canvasClicked.connect(self.mouseClick)
     self.rubberBand = gui.QgsRubberBand(iface.mapCanvas(),
                                         core.QgsWkbTypes.PolygonGeometry)
     color = QtGui.QColor(78, 97, 114)
     color.setAlpha(190)
     self.rubberBand.setColor(color)
     self.rubberBand.setFillColor(QtGui.QColor(255, 0, 0, 40))
     iface.mapCanvas().setMapTool(self.tool)
     iface.mapCanvas().xyCoordinates.connect(self.mouseMove)
 def __init__(self, canvas, parent):
     self.canvas = canvas
     gui.QgsMapToolEmitPoint.__init__(self, self.canvas)
     #self.tmp_band = gui.QgsRubberBand(self.canvas, core.QGis.Polygon)
     self.tmp_band = gui.QgsRubberBand(
         self.canvas)  #, qgis.core.QgsWkbTypes.Polygon)
     #self.tmp_band.setBorderColor(qcore.Qt.yellow)
     self.tmp_band.setStrokeColor(qcore.Qt.yellow)
     self.tmp_band.setFillColor(qcore.Qt.transparent)
     self.tmp_band.setWidth(3)
     self.reset()
     self.parent = parent
Exemplo n.º 7
0
 def createSnapCursor(self, point):
     #Método para criar rubberBand do snap
     rubberBand = self.getSnapRubberBand()
     if rubberBand:
         rubberBand.reset()
     else:
         rubberBand = gui.QgsRubberBand(
             self.getCanvas(), geometryType=core.QgsWkbTypes.PointGeometry)
     rubberBand.setColor(QtGui.QColor(255, 0, 0, 200))
     rubberBand.setFillColor(QtGui.QColor(255, 0, 0, 40))
     rubberBand.setWidth(5)
     rubberBand.setIcon(gui.QgsRubberBand.ICON_X)
     rubberBand.addPoint(point)
     self.setSnapRubberBand(rubberBand)
Exemplo n.º 8
0
 def canvasPressEvent(self, event):
     # Press event handler inherited from QgsMapTool used to store the given location in WGS84 long/lat
     self.pressed=True
     self.pressx = event.pos().x()
     self.pressy = event.pos().y()
     self.movex = event.pos().x()
     self.movey = event.pos().y()
     self.highlight=gui.QgsRubberBand(self.iface.mapCanvas(),core.QgsWkbTypes.LineGeometry )
     self.highlight.setColor(QtCore.Qt.yellow)
     self.highlight.setWidth(5)
     self.PressedPoint = self.canvas.getCoordinateTransform().toMapCoordinates(self.pressx, self.pressy)
     self.pointWgs84 = self.transformToWGS84(self.PressedPoint)
     # start infobox
     self.infoBoxManager.restoreIni()
Exemplo n.º 9
0
    def highlight(self, geom, seconds=2):
        def removeRB():
            rb.reset(True)
            self.canvas.scene().removeItem(rb)

        geomTransform = geom
        crsCanvas = self.canvas.mapSettings().destinationCrs()
        if not self.crs == crsCanvas:
            ct = QgsCore.QgsCoordinateTransform(self.crs, crsCanvas)
            geomTransform.transform(ct)

        rb = QgsGui.QgsRubberBand(self.canvas, QgsCore.QGis.Polygon)
        rb.setBorderColor(self.color)
        rb.setWidth(2)
        rb.setToGeometry(geomTransform, None)
        QtCore.QTimer.singleShot(seconds * 1000, removeRB)
Exemplo n.º 10
0
            def createRubberBand():
                def canvasRect():
                    # Adaption from "https://github.com/sourcepole/qgis-instantprint-plugin/blob/master/InstantPrintTool.py"
                    mtp = self.canvas.mapSettings().mapToPixel()
                    rect = self.canvas.extent().toRectF()
                    p1 = mtp.transform(
                        QgsCore.QgsPoint(rect.left(), rect.top()))
                    p2 = mtp.transform(
                        QgsCore.QgsPoint(rect.right(), rect.bottom()))
                    return QtCore.QRect(p1.x(), p1.y(),
                                        p2.x() - p1.x(),
                                        p2.y() - p1.y())

                rb = QgsGui.QgsRubberBand(self.canvas, False)
                rb.setBorderColor(QtGui.QColor(0, 255, 255))
                rb.setWidth(2)
                rb.setToCanvasRectangle(canvasRect())
                return rb
Exemplo n.º 11
0
 def getRubberBand(self):
     rubberBand = gui.QgsRubberBand(iface.mapCanvas(), True)
     rubberBand.setFillColor(QColor(255, 0, 0, 40))
     rubberBand.setSecondaryStrokeColor(QColor(255, 0, 0, 200))
     rubberBand.setWidth(2)
     return rubberBand
Exemplo n.º 12
0
    def initGui(self):
        # Create actions that will start plugin configuration
        self.StreetviewAction = QtWidgets.QAction(QtGui.QIcon(os.path.join(os.path.dirname(__file__), 'res', 'icoStreetview.png')), \
            "Click to open Google Street View", self.iface.mainWindow())
        #self.StreetviewAction = QtWidgets.QAction(QtGui.QIcon(":/plugins/go2streetview/res/icoStreetview.png"), \
        #    "Click to open Google Street View", self.iface.mainWindow())
        self.StreetviewAction.triggered.connect(self.StreetviewRun)
        # Add toolbar button and menu item
        self.iface.addToolBarIcon(self.StreetviewAction)
        self.iface.addPluginToWebMenu("&go2streetview", self.StreetviewAction)
        self.dirPath = os.path.dirname( os.path.abspath( __file__ ) )
        self.actualPOV = {}
        self.view = go2streetviewDialog()
        self.dumView = dumWidget()
        self.dumView.enter.connect(self.clickOn)
        self.dumView.iconRif.setPixmap(QtGui.QPixmap(os.path.join(os.path.dirname(__file__), 'res', 'icoStreetview.png')))
        #self.dumView.iconRif.setPixmap(QtGui.QPixmap(":/plugins/go2streetview/res/icoStreetview.png"))
        self.apdockwidget=QtWidgets.QDockWidget("go2streetview" , self.iface.mainWindow() )
        self.apdockwidget.setObjectName("go2streetview")
        self.apdockwidget.setWidget(self.dumView)
        self.iface.addDockWidget( QtCore.Qt.LeftDockWidgetArea, self.apdockwidget)
        self.apdockwidget.update()

        self.viewHeight=self.apdockwidget.size().height()
        self.viewWidth=self.apdockwidget.size().width()
        self.snapshotOutput = snapShot(self)
        self.view.SV.settings().globalSettings().setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True);
        self.view.SV.settings().globalSettings().setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessRemoteUrls, True);
        self.view.SV.page().networkAccessManager().finished.connect(self.noSVConnectionsPending)
        self.view.SV.page().statusBarMessage.connect(self.catchJSevents)
        self.view.BE.page().statusBarMessage.connect(self.catchJSevents)
        self.view.btnSwitchView.setIcon(QtGui.QIcon(os.path.join(self.dirPath,"res","icoGMaps.png")))

        self.view.enter.connect(self.clickOn)
        self.view.closed.connect(self.closeDialog)
        self.setButtonBarSignals()
        self.infoBoxManager = infobox(self)
        self.infoBoxManager.defined.connect(self.infoLayerDefinedAction)
        self.apdockwidget.visibilityChanged.connect(self.apdockChangeVisibility)
        self.iface.projectRead.connect(self.projectReadAction)
        self.pressed=None
        self.CTRLPressed=None

        self.controlShape = gui.QgsRubberBand(self.iface.mapCanvas(),core.QgsWkbTypes.LineGeometry )
        self.controlShape.setWidth( 1 )
        self.position=gui.QgsRubberBand(self.iface.mapCanvas(),core.QgsWkbTypes.PointGeometry )
        self.position.setWidth( 5 )
        self.position.setIcon(gui.QgsRubberBand.ICON_CIRCLE)
        self.position.setIconSize(6)
        self.position.setColor(QtCore.Qt.red)
        self.aperture=gui.QgsRubberBand(self.iface.mapCanvas(),core.QgsWkbTypes.LineGeometry )
        self.rotateTool = transformGeometry()
        self.canvas.rotationChanged.connect(self.mapRotationChanged)
        self.canvas.scaleChanged.connect(self.setPosition)
        self.dumLayer = core.QgsVectorLayer("Point?crs=EPSG:4326", "temporary_points", "memory")
        self.actualPOV = {"lat":0.0,"lon":0.0,"heading":0.0,"zoom":1}
        self.pointWgs84 = None
        self.mkDirs()
        self.licenceDlg = snapshotLicenseDialog()
        self.httpConnecting = None

        self.S = QtCore.QSettings()
        terms = self.S.value("go2sv/license", defaultValue =  "undef")
        self.APIkey = self.S.value("go2sv/APIkey", defaultValue =  "")
        self.licenceDlg.APIkey.setText(self.APIkey)
        if terms == self.version:
            self.licenseAgree = True
            self.licenceDlg.checkGoogle.setCheckState(QtCore.Qt.Checked)
            self.licenceDlg.checkGoogle.setEnabled(False)
        else:
            self.licenseAgree = None
        self.licenceDlg.OKbutton.clicked.connect(self.checkLicenseAction)
        self.licenceDlg.textBrowser.anchorClicked.connect(self.openExternalUrl)

        # Register plugin layer type
        #self.tileLayerType = TileLayerType(self)
        #QgsPluginLayerRegistry.instance().addPluginLayerType(self.tileLayerType)

        self.view.SV.page().setNetworkAccessManager(core.QgsNetworkAccessManager.instance())
        self.view.BE.page().setNetworkAccessManager(core.QgsNetworkAccessManager.instance())

        #setting a webinspector dialog
        self.webInspectorDialog = QtWidgets.QDialog()
        self.webInspector = QtWebKitWidgets.QWebInspector(self.webInspectorDialog)
        self.webInspector.setPage(self.view.BE.page())
        self.webInspectorDialog.setLayout(QtWidgets.QVBoxLayout())
        self.webInspectorDialog.setWindowTitle("Web Inspector")
        self.webInspectorDialog.resize(960, 480)
        self.webInspectorDialog.layout().addWidget(self.webInspector)
        self.webInspectorDialog.setModal(False)
        self.webInspectorDialog.hide()
        core.QgsExpression.registerFunction(get_streetview_url)
        core.QgsExpression.registerFunction(get_streetview_pov)