Esempio n. 1
0
    def testMapToolChange(self):

        if isinstance(IFACE, QgisStubInterface):
            advDigitizeWidget = QgsAdvancedDigitizingDockWidget(CANVAS, CANVAS)

            if (version.parse(QtCore.qVersion()) < version.parse("5.11.0")):
                toolMode = QgsMapToolCapture.CaptureLine
            else:
                toolMode = QgsMapToolCapture.CaptureMode.CaptureLine

            captureMapTool = QgsMapToolCapture(CANVAS, advDigitizeWidget,
                                               toolMode)

            self.coordinator.reset()
            CANVAS.setMapTool(QgsMapToolPan(CANVAS))
            self.assertFalse(self.dw.addFeatureButton.isEnabled())
            QTest.keyClicks(self.dw.inLeft, "8")
            self.assertFalse(self.dw.addFeatureButton.isEnabled())

            CANVAS.setMapTool(captureMapTool)

            self.assertTrue(self.dw.addFeatureButton.isEnabled())

            CANVAS.setMapTool(QgsMapToolPan(CANVAS))
            self.assertFalse(self.dw.addFeatureButton.isEnabled())

            self.coordinator.reset()
            self.assertFalse(self.dw.addFeatureButton.isEnabled())
            CANVAS.setMapTool(captureMapTool)
            # add Feature Button should not be enabled when there is no input
            self.assertFalse(self.dw.addFeatureButton.isEnabled())
        else:
            self.skipTest("not yet implemented for QGIS GUI tests")
Esempio n. 2
0
    def unload(self):
        if self.prevTool and self.prevTool != self.swipe_tool:
            self.map_canvas.setMapTool(self.prevTool)
        else:
            self.map_canvas.setMapTool(QgsMapToolPan(self.iface.mapCanvas()))

        del self.tool_bar
Esempio n. 3
0
    def load_inputs(self):
        if 'soil_layer' in self.input_layers:
            QgsMapLayerRegistry.instance().removeMapLayer(
                self.input_layers['soil_layer'])
        if 'lulc_layer' in self.input_layers:
            QgsMapLayerRegistry.instance().removeMapLayer(
                self.input_layers['lulc_layer'])
        if 'slope_layer' in self.input_layers:
            QgsMapLayerRegistry.instance().removeMapLayer(
                self.input_layers['slope_layer'])
        path = self.folder_path.text()
        self.input_layers['soil_layer'] = self.iface.addVectorLayer(
            os.path.join(path, 'Soil.shp'), 'Soil Cover', 'ogr')
        self.input_layers['lulc_layer'] = self.iface.addVectorLayer(
            os.path.join(path, 'LULC.shp'), 'Land-Use-Land-Cover', 'ogr')
        self.input_layers['slope_layer'] = self.iface.addRasterLayer(
            os.path.join(path, 'Slope.tif'), 'Slope')
        self.iface.mapCanvas().setExtent(
            self.input_layers['slope_layer'].extent())

        if os.path.exists(os.path.join(path, 'Rainfall.csv')):
            self.rainfall_csv_filepath.setText(
                os.path.join(path, 'Rainfall.csv'))
        et0_dict = list(csv.DictReader(open(os.path.join(path, 'ET0.csv'))))[0]
        for month, i in zip([
                'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Jan', 'Feb',
                'Mar', 'Apr', 'May'
        ], range(12)):
            self.ET0.setItem(i, 0, QtGui.QTableWidgetItem(et0_dict[month]))
        #Reset picking mode for any newly loaded dataset
        self.picking_mode = False
        self.pick_point_button.setText('Pick a Point')
        self.iface.mapCanvas().setMapTool(QgsMapToolPan(
            self.iface.mapCanvas()))
    def __init__(self, geogiglayer, fid):
        super(VersionViewerDialog, self).__init__(iface.mainWindow())
        self.geogiglayer = geogiglayer
        self.fid = fid
        self.layer = None
        self.setupUi(self)

        self.listWidget.itemClicked.connect(self.commitClicked)

        horizontalLayout = QHBoxLayout()
        horizontalLayout.setSpacing(0)
        horizontalLayout.setMargin(0)
        self.mapCanvas = QgsMapCanvas()
        self.mapCanvas.setCanvasColor(Qt.white)
        horizontalLayout.addWidget(self.mapCanvas)
        self.mapWidget.setLayout(horizontalLayout)
        self.panTool = QgsMapToolPan(self.mapCanvas)
        self.mapCanvas.setMapTool(self.panTool)

        path = geogiglayer.layername + "/" + fid
        ids, commits = geogiglayer.server.log(geogiglayer.user,
                                              geogiglayer.repo, "master", path)
        if commits:
            for commit in commits.values():
                item = CommitListItem(commit, geogiglayer, fid)
                self.listWidget.addItem(item)
        else:
            raise GeogigError("The selected feature is not versioned yet")
Esempio n. 5
0
    def connectButtons(self):
        """
        Connect the default buttons in the interface. Zoom, pan, etc
        """
        def connectAction(action, tool):
            action.toggled.connect(partial(self.setMapTool, tool))

        def cursor(name):
            pix = QPixmap(name)
            pix = pix.scaled(QSize(24, 24))
            return QCursor(pix)

        self.zoomInTool = QgsMapToolZoom(self.canvas, False)
        self.zoomOutTool = QgsMapToolZoom(self.canvas, True)
        self.panTool = QgsMapToolPan(self.canvas)
        self.infoTool = InfoTool(self.canvas)

        self.infoTool.setAction(self.actionInfo)
        self.zoomInTool.setAction(self.actionZoom_In)
        self.zoomOutTool.setAction(self.actionZoom_Out)
        self.panTool.setAction(self.actionPan)

        connectAction(self.actionZoom_In, self.zoomInTool)
        connectAction(self.actionZoom_Out, self.zoomOutTool)
        connectAction(self.actionPan, self.panTool)
        connectAction(self.actionInfo, self.infoTool)

        self.zoomInTool.setCursor(cursor(':/icons/in'))
        self.zoomOutTool.setCursor(cursor(':/icons/out'))
        self.infoTool.setCursor(cursor(':/icons/select'))

        self.actionRaster.triggered.connect(self.toggle_raster_layers)
        self.actionHome.triggered.connect(self.homeview)
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.setupUi(self)
        self.thematic_file_classes = None

        self.map_tool_pan = QgsMapToolPan(self.render_widget.canvas)
        self.render_widget.canvas.setMapTool(self.map_tool_pan, clean=True)
Esempio n. 7
0
 def unload(self):
     if self.prevTool and self.prevTool != self.tool:
         self.canvas.setMapTool(self.prevTool)
     else:
         self.canvas.setMapTool(QgsMapToolPan(self.iface.mapCanvas()))
     self.iface.removeToolBarIcon(self.widget_action)
     del self.widget_action
    def initGui(self):
        layout = QVBoxLayout()
        self.tab = QTabWidget()
        self.table = QTableView()

        self.setLayout(layout)
        self.canvas = QgsMapCanvas()
        self.canvas.setCanvasColor(Qt.white)
        settings = QSettings()
        self.canvas.enableAntiAliasing(
            settings.value("/qgis/enable_anti_aliasing", False, type=bool))
        self.canvas.useImageToRender(
            settings.value("/qgis/use_qimage_to_render", False, type=bool))
        self.canvas.mapSettings().setDestinationCrs(self.crs)
        action = settings.value("/qgis/wheel_action", 0, type=float)
        zoomFactor = settings.value("/qgis/zoom_factor", 2, type=float)
        self.canvas.setWheelAction(QgsMapCanvas.WheelAction(action),
                                   zoomFactor)
        self.panTool = QgsMapToolPan(self.canvas)
        self.canvas.setMapTool(self.panTool)

        execute(self.createLayers)

        model = GeomDiffTableModel(self.data)
        self.table.setModel(model)
        self.table.resizeColumnsToContents()
        self.table.resizeRowsToContents()
        self.tab.addTab(self.canvas, "Map view")
        self.tab.addTab(self.table, "Table view")
        layout.addWidget(self.tab)

        self.resize(600, 500)
        self.setWindowTitle("Geometry comparison")
 def reject(self):
     scene = define._canvas.scene()
     scene.removeItem(self.CaptureTHRCoordTool.rubberBand)
     scene.removeItem(self.CaptureENDCoordTool.rubberBand)
     #         self.CaptureTHRCoordTool.rubberBand.hide()
     #         self.CaptureENDCoordTool.rubberBand.hide()
     define._canvas.setMapTool(QgsMapToolPan(define._canvas))
     self.reject()
Esempio n. 10
0
    def __init__(self, parent=None, iface=None):
        """Constructor for import dialog.

        :param parent: Optional widget to use as parent
        :type parent: QWidget

        :param iface: An instance of QGisInterface
        :type iface: QGisInterface
        """
        QDialog.__init__(self, parent)
        self.parent = parent
        self.setupUi(self)

        self.setWindowTitle(self.tr('InaSAFE OpenStreetMap Downloader'))

        self.iface = iface
        self.buildings_url = 'http://osm.linfiniti.com/buildings-shp'
        self.building_points_url = \
            'http://osm.linfiniti.com/building-points-shp'
        self.roads_url = 'http://osm.linfiniti.com/roads-shp'

        self.help_context = 'openstreetmap_downloader'
        # creating progress dialog for download
        self.progress_dialog = QProgressDialog(self)
        self.progress_dialog.setAutoClose(False)
        title = self.tr('InaSAFE OpenStreetMap Downloader')
        self.progress_dialog.setWindowTitle(title)
        # Set up context help
        help_button = self.button_box.button(QtGui.QDialogButtonBox.Help)
        help_button.clicked.connect(self.show_help)

        self.show_info()

        # set up the validator for the file name prefix
        expression = QRegExp('^[A-Za-z0-9-_]*$')
        validator = QRegExpValidator(expression, self.filename_prefix)
        self.filename_prefix.setValidator(validator)

        # Set Proxy in webpage
        proxy = get_proxy()
        self.network_manager = QNetworkAccessManager(self)
        if proxy is not None:
            self.network_manager.setProxy(proxy)
        self.restore_state()

        # Setup the rectangle map tool
        self.canvas = iface.mapCanvas()
        self.rectangle_map_tool = \
            RectangleMapTool(self.canvas)
        self.rectangle_map_tool.rectangle_created.connect(
            self.update_extent_from_rectangle)
        self.button_extent_rectangle.clicked.connect(
            self.drag_rectangle_on_map_canvas)

        # Setup pan tool
        self.pan_tool = QgsMapToolPan(self.canvas)
        self.canvas.setMapTool(self.pan_tool)
        self.update_extent_from_map_canvas()
Esempio n. 11
0
 def close(self):
     scene = define._canvas.scene()
     scene.removeItem(self.CaptureTHRCoordTool.rubberBandClick)
     scene.removeItem(self.CaptureENDCoordTool.rubberBandClick)
     scene.removeItem(self.bearingTool.rubberBand)
     scene.removeItem(self.distanceMeasureTool.rubberBand)
     #         self.CaptureTHRCoordTool.rubberBand.hide()
     #         self.CaptureENDCoordTool.rubberBand.hide()
     define._canvas.setMapTool(QgsMapToolPan(define._canvas))
Esempio n. 12
0
 def savePatrolAreaLayer(self):
     name = "patrol_area"
     CanvasLayerSaver(
         name,
         [self.patrolArea],
         crs=self.canvas.mapSettings().destinationCrs(),
         color=PATROL_AREA_COLOR,
         style=PATROL_AREA_STYLE,
     )
     iface.mapCanvas().setMapTool(QgsMapToolPan(iface.mapCanvas()))
Esempio n. 13
0
 def manualEvent(self, index):
     QgisHelper.ClearRubberBandInCanvas(define._canvas)
     self.manualPolygon = None
     if index != 0:
         self.toolSelectByPolygon = RubberBandPolygon(define._canvas)
         define._canvas.setMapTool(self.toolSelectByPolygon)
         self.connect(self.toolSelectByPolygon, SIGNAL("outputResult"), self.outputResultMethod)
     else:
         self.mapToolPan = QgsMapToolPan(define._canvas)
         define._canvas.setMapTool(self.mapToolPan )
 def saveCanvasAreasToAvoidLayer(self):
     name = "avoid_areas"
     CanvasLayerSaver(
         name,
         self.areasToAvoid,
         crs=self.canvas.mapSettings().destinationCrs(),
         color=AVOID_AREA_COLOR,
         style=AVOID_AREA_STYLE,
     )
     iface.mapCanvas().setMapTool(QgsMapToolPan(iface.mapCanvas()))
Esempio n. 15
0
    def __init__(self, conflicts):
        super(ConflictDialog,
              self).__init__(None,
                             Qt.WindowSystemMenuHint | Qt.WindowTitleHint)
        self.solved = False
        self.resolvedConflicts = {}
        self.conflicts = conflicts
        self.setupUi(self)

        self.setWindowFlags(self.windowFlags() | Qt.WindowSystemMenuHint
                            | Qt.WindowMinMaxButtonsHint)

        self.zoomButton.clicked.connect(self.zoomToFullExtent)
        self.solveButton.clicked.connect(self.solve)
        self.conflictsTree.itemClicked.connect(self.treeItemClicked)
        self.attributesTable.cellClicked.connect(self.cellClicked)
        self.solveAllLocalButton.clicked.connect(self.solveAllLocal)
        self.solveAllRemoteButton.clicked.connect(self.solveAllRemote)
        self.solveLocalButton.clicked.connect(self.solveLocal)
        self.solveRemoteButton.clicked.connect(self.solveRemote)

        self.showRemoteCheck.stateChanged.connect(self.showGeoms)
        self.showLocalCheck.stateChanged.connect(self.showGeoms)

        self.lastSelectedItem = None
        self.currentPath = None
        self.currentConflict = None
        self.theirsLayer = None
        self.oursLayer = None

        settings = QSettings()
        horizontalLayout = QHBoxLayout()
        horizontalLayout.setSpacing(0)
        horizontalLayout.setMargin(0)
        self.mapCanvas = QgsMapCanvas()
        self.mapCanvas.setCanvasColor(Qt.white)
        self.mapCanvas.enableAntiAliasing(
            settings.value("/qgis/enable_anti_aliasing", False, type=bool))
        self.mapCanvas.useImageToRender(
            settings.value("/qgis/use_qimage_to_render", False, type=bool))
        self.mapCanvas.mapRenderer().setProjectionsEnabled(True)
        action = settings.value("/qgis/wheel_action", 0, type=float)
        zoomFactor = settings.value("/qgis/zoom_factor", 2, type=float)
        self.mapCanvas.setWheelAction(QgsMapCanvas.WheelAction(action),
                                      zoomFactor)
        horizontalLayout.addWidget(self.mapCanvas)
        self.canvasWidget.setLayout(horizontalLayout)
        self.panTool = QgsMapToolPan(self.mapCanvas)
        self.mapCanvas.setMapTool(self.panTool)

        self.solveButton.setEnabled(False)
        self.solveLocalButton.setEnabled(False)
        self.solveRemoteButton.setEnabled(False)

        self.fillConflictsTree()
Esempio n. 16
0
    def __init__(self):
        QMainWindow.__init__(self)

        # creating map canvas, which draws the maplayers
        # setting up features like canvas color
        self.canvas = QgsMapCanvas()
        self.canvas.setMinimumSize(550, 700)
        self.canvas.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        self.canvas.setCanvasColor(Qt.white)
        self.canvas.enableAntiAliasing(True)

        # Qmainwindow requires a central widget. Canvas is placed
        self.setCentralWidget(self.canvas)

        # creating each desired action
        self.actionGet = QAction("Return polygon and close", self)
        self.actionPan = QAction("Pan tool", self)
        self.actionDraw = QAction("Polygon tool", self)
        self.actionConnect = QAction("Connect polygon", self)
        self.actionClear = QAction("Clear", self)
        self.actionCancel = QAction("Cancel and close", self)

        # these two function as on/off. the rest are clickable
        self.actionPan.setCheckable(True)
        self.actionDraw.setCheckable(True)

        # when actions are clicked, do corresponding function
        self.actionPan.triggered.connect(self.pan)
        self.actionDraw.triggered.connect(self.draw)
        self.actionClear.triggered.connect(self.clear)
        self.actionGet.triggered.connect(self.finishedSelection)
        self.actionConnect.triggered.connect(self.connect)
        self.actionCancel.triggered.connect(self.cancel)

        # toolbar at the top of the screen: houses actions as buttons
        # change order here to change their placement on toolbar
        self.toolbar = self.addToolBar("Canvas actions")
        self.toolbar.setContextMenuPolicy(Qt.PreventContextMenu)
        self.toolbar.setMovable(False)
        self.toolbar.addAction(self.actionGet)
        self.toolbar.addAction(self.actionPan)
        self.toolbar.addAction(self.actionDraw)
        self.toolbar.addAction(self.actionConnect)
        self.toolbar.addAction(self.actionClear)
        self.toolbar.addAction(self.actionCancel)

        # link actions to premade map tools
        self.toolPan = QgsMapToolPan(self.canvas)
        self.toolPan.setAction(self.actionPan)
        self.toolDraw = PolygonMapTool(self.canvas)
        self.toolDraw.setAction(self.actionDraw)

        # set draw tool by default
        self.draw()
Esempio n. 17
0
 def set_point_coords(self, point, button):
     log("Set point coords")
     #TODO: Show a messagebar while tool is active, and then remove the bar when a point is chosen.
     self.point = point
     # Disable the choose point tool
     self.canvas.setMapTool(QgsMapToolPan(self.canvas))
     self.show()
     self.point = self.canvas.getCoordinateTransform().toMapCoordinates(self.canvas.mouseLastXY())
     log("Chose point: {}, {}.".format(self.point.x(), self.point.y()))
     self.point_x.setText("{:.8f}".format(self.point.x()))
     self.point_y.setText("{:.8f}".format(self.point.y()))
 def __init__(self, inp_sparql, triplestoreconf, endpointIndex):
     super(QDialog, self).__init__()
     self.setupUi(self)
     self.inp_sparql = inp_sparql
     self.triplestoreconf = triplestoreconf
     self.endpointIndex = endpointIndex
     self.vl = QgsVectorLayer("Point", "temporary_points", "memory")
     self.map_canvas = QgsMapCanvas(self)
     self.layerExtentOrBBOX = False
     self.map_canvas.setMinimumSize(500, 475)
     self.map_canvas.move(0, 30)
     self.nominatimmap = {}
     actionPan = QAction("Pan", self)
     actionPan.setCheckable(True)
     actionPan.triggered.connect(self.pan)
     self.toolPan = QgsMapToolPan(self.map_canvas)
     self.toolPan.setAction(actionPan)
     uri = "url=http://a.tile.openstreetmap.org/{z}/{x}/{y}.png&zmin=0&type=xyz"
     self.mts_layer = QgsRasterLayer(uri, 'OSM', 'wms')
     if not self.mts_layer.isValid():
         print("Layer failed to load!")
     self.rect_tool = RectangleMapTool(self.map_canvas)
     self.circ_tool = CircleMapTool(self.map_canvas, 1)
     self.poly_tool = PolygonMapTool(self.map_canvas)
     self.map_canvas.setMapTool(self.rect_tool)
     self.map_canvas.setExtent(self.mts_layer.extent())
     self.map_canvas.setLayers([self.vl, self.mts_layer])
     self.map_canvas.setCurrentLayer(self.mts_layer)
     self.pan()
     self.selectCircle.hide()
     self.geocodeSearch = NominatimText(self, self.nominatimmap,
                                        self.map_canvas)
     self.move(120, 0)
     self.crsdialog = QgsProjectionSelectionWidget(self)
     self.crsdialog.move(160, 540)
     self.crsdialog.resize(331, 30)
     self.crsdialog.setCrs(QgsCoordinateReferenceSystem('EPSG:4326'))
     self.crsdialog.show()
     self.nominatimurl = 'https://nominatim.openstreetmap.org/search?format=json&q={address}'
     self.panButton.clicked.connect(self.pan)
     self.selectCircle.clicked.connect(self.selectcircle)
     self.selectPolygon.clicked.connect(self.selectpolygon)
     self.selectButton.clicked.connect(self.selectarea)
     self.zoomIn.clicked.connect(self.map_canvas.zoomIn)
     self.zoomOut.clicked.connect(self.map_canvas.zoomOut)
     self.b2.clicked.connect(self.setBBOXExtentQuery)
     self.searchButton.hide()
     self.searchPlace.hide()
     self.geocodeSearch.hide()
     layers = QgsProject.instance().layerTreeRoot().children()
     for layer in layers:
         self.chooseBBOXLayer.addItem(layer.name())
     self.searchButton.clicked.connect(self.geocode)
     self.b1.clicked.connect(self.setBBOXInQuery)
    def initGui(self):
        layout = QVBoxLayout()
        splitter = QSplitter()
        splitter.setOrientation(Qt.Vertical)

        self.history = HistoryTree(self.dialog)
        self.history.updateContent(self.server, self.user, self.repo, self.graph, self.layer)
        self.historyWithFilter = HistoryTreeWrapper(self.history)
        if self.simplifyLog:
            self.historyWithFilter.simplify(True)
        splitter.addWidget(self.historyWithFilter)
        self.tabWidget = QTabWidget()
        self.tabCanvas = QWidget()
        tabLayout = QVBoxLayout()
        tabLayout.setMargin(0)        
        self.canvas = QgsMapCanvas(self.tabCanvas)
        self.canvas.setCanvasColor(Qt.white)
        self.panTool = QgsMapToolPan(self.canvas)
        self.canvas.setMapTool(self.panTool)
        tabLayout.addWidget(self.canvas)
        self.labelNoChanges = QLabel("This commit doesn't change any geometry")
        self.labelNoChanges.setAlignment(Qt.AlignCenter)
        self.labelNoChanges.setVisible(False)
        tabLayout.addWidget(self.labelNoChanges)
        self.tabCanvas.setLayout(tabLayout)
        self.summaryTextBrowser = QTextBrowser()
        self.summaryTextBrowser.setOpenLinks(False)
        self.summaryTextBrowser.anchorClicked.connect(self.summaryTextBrowserAnchorClicked)
        self.tabWidget.addTab(self.summaryTextBrowser, "Commit Summary")
        self.tabWidget.addTab(self.tabCanvas, "Map")
        tabLayout = QVBoxLayout()
        tabLayout.setMargin(0)
        self.tabDiffViewer = QWidget()
        self.diffViewer = DiffViewerWidget({})
        tabLayout.addWidget(self.diffViewer)
        self.tabDiffViewer.setLayout(tabLayout)
        self.tabWidget.addTab(self.tabDiffViewer, "Attributes")
        splitter.addWidget(self.tabWidget)
        self.label = QTextBrowser()
        self.label.setVisible(False)
        splitter.addWidget(self.label)
        self.tabWidget.setCurrentWidget(self.tabDiffViewer)

        layout.addWidget(splitter)
        self.setLayout(layout)

        exportDiffButton = QPushButton("Export this commit's DIFF for all layers")
        exportDiffButton.clicked.connect(self.exportDiffAllLayers)

        layout.addWidget(exportDiffButton)
        self.label.setMinimumHeight(self.tabWidget.height())        
        self.setWindowTitle("Repository history")
Esempio n. 20
0
    def setupUi(self):
        self.setObjectName("mirrormap")

        gridLayout = QGridLayout(self)
        gridLayout.setContentsMargins(0, 0, gridLayout.verticalSpacing(),
                                      gridLayout.verticalSpacing())

        self.canvas = QgsMapCanvas(self)
        self.canvas.setCanvasColor(QColor(255, 255, 255))
        settings = QSettings()
        gridLayout.addWidget(self.canvas, 0, 0, 1, 5)

        self.addLayerBtn = QToolButton(self)
        # self.addLayerBtn.setToolButtonStyle( Qt.ToolButtonTextBesideIcon )
        # self.addLayerBtn.setText("Add current layer")
        self.addLayerBtn.setIcon(GuiUtils.get_icon("add.png"))

        self.addLayerBtn.clicked.connect(self.tool_add_layer)
        gridLayout.addWidget(self.addLayerBtn, 1, 0, 1, 1)

        self.delLayerBtn = QToolButton(self)
        # self.delLayerBtn.setToolButtonStyle( Qt.ToolButtonTextBesideIcon )
        # self.delLayerBtn.setText("Remove current layer")
        self.delLayerBtn.setIcon(GuiUtils.get_icon("remove.png"))
        self.delLayerBtn.clicked.connect(self.tool_remove_layer)
        gridLayout.addWidget(self.delLayerBtn, 1, 1, 1, 1)

        self.renderCheck = QCheckBox("Render", self)
        self.renderCheck.toggled.connect(self.toggleRender)
        self.renderCheck.setChecked(True)
        gridLayout.addWidget(self.renderCheck, 1, 2, 1, 1)

        self.scaleFactorLabel = QLabel(self)
        self.scaleFactorLabel.setText("Scale factor:")
        self.scaleFactorLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
        gridLayout.addWidget(self.scaleFactorLabel, 1, 3, 1, 1)
        self.scaleFactor = QDoubleSpinBox(self)
        self.scaleFactor.setMinimum(0.0)
        self.scaleFactor.setMaximum(1000.0)
        self.scaleFactor.setDecimals(3)
        self.scaleFactor.setValue(1)
        self.scaleFactor.setObjectName("scaleFactor")
        self.scaleFactor.setSingleStep(.05)
        gridLayout.addWidget(self.scaleFactor, 1, 4, 1, 1)
        self.scaleFactor.valueChanged.connect(self.onExtentsChanged)

        # Add a default pan tool
        self.toolPan = QgsMapToolPan(self.canvas)
        self.canvas.setMapTool(self.toolPan)

        self.scaleFactor.valueChanged.connect(self.onExtentsChanged)
        self.set_iface(self.iface)
 def setPolygonDrawingMapTool(self, checked):
     if checked:
         self.prevMapTool = iface.mapCanvas().mapTool()
         self.mapToolDrawPolygon = DrawPolygonMapTool(iface.mapCanvas())
         self.mapToolDrawPolygon.polygonSelected.connect(
             self.setAreasToAvoidFromPolygon)
         iface.mapCanvas().setMapTool(self.mapToolDrawPolygon)
     else:
         try:
             iface.mapCanvas().setMapTool(self.prevMapTool)
         except Exception as e:
             logging.error(e)
             iface.mapCanvas().setMapTool(QgsMapToolPan(iface.mapCanvas()))
Esempio n. 22
0
    def setupUi(self):
        gridLayout = QGridLayout(self)
        gridLayout.setContentsMargins(0, 0, 0, 0)
        self.canvas = QgsMapCanvas()
        self.canvas.setCanvasColor(QColor(255, 255, 255))
        self.canvas.setStyleSheet("border: 0px;")
        settings = QSettings()
        self.canvas.enableAntiAliasing(
            settings.value("/qgis/enable_anti_aliasing", False, type=bool))
        self.setMinimumSize(15, 15)
        # action pan and zoom
        self.default_point_tool = QgsMapToolPan(self.canvas)
        self.canvas.setMapTool(self.default_point_tool, clean=True)

        gridLayout.addWidget(self.canvas)
Esempio n. 23
0
 def set_point_coords(self, point, button):
     log("Set point coords")
     #TODO: Show a messagebar while tool is active, and then remove the bar when a point is chosen.
     self.point = point
     # Disable the choose point tool
     self.canvas.setMapTool(QgsMapToolPan(self.canvas))
     # Don't reset_tab_on_show as it would lead to return to first tab after
     # using the point chooser
     self.reset_tab_on_showEvent = False
     self.show()
     self.reset_tab_on_showEvent = True
     self.point = self.canvas.getCoordinateTransform().toMapCoordinates(self.canvas.mouseLastXY())
     log("Chose point: {}, {}.".format(self.point.x(), self.point.y()))
     self.point_widget.point_x.setText("{:.8f}".format(self.point.x()))
     self.point_widget.point_y.setText("{:.8f}".format(self.point.y()))
Esempio n. 24
0
 def activate_mapTool(self):
     if self.picking_mode:
         self.iface.mapCanvas().setMapTool(
             QgsMapToolPan(self.iface.mapCanvas()))
         self.pick_point_button.setText('Pick a Point')
         self.picking_mode = False
     else:
         if (self.input_layers['soil_layer'] is None
                 or self.input_layers['lulc_layer'] is None
                 or self.input_layers['slope_layer'] is None):
             return
         self.pointTool = PointTool(self.iface.mapCanvas(), self)
         self.iface.mapCanvas().setMapTool(self.pointTool)
         self.pick_point_button.setText('Disable picking')
         self.picking_mode = True
Esempio n. 25
0
 def _radioButtonsPatrolChanged(self):
     self.populatePatrolLayerSelector()
     self.comboPatrolAreaLayers.setEnabled(
         self.radioPatrolAreaLayer.isChecked())
     self.btnPatrolAreaCanvas.setEnabled(
         self.radioPatrolAreaPolygon.isChecked())
     self.btnPatrolAreaClear.setEnabled(
         self.radioPatrolAreaPolygon.isChecked())
     self.btnPatrolAreaSave.setEnabled(
         self.radioPatrolAreaPolygon.isChecked())
     if self.radioPatrolAreaPolygon.isChecked():
         if self.patrolArea is not None:
             self.patrolFootprint.setToGeometry(self.patrolArea)
     else:
         iface.mapCanvas().setMapTool(QgsMapToolPan(iface.mapCanvas()))
         self.patrolFootprint.reset(QgsWkbTypes.PolygonGeometry)
Esempio n. 26
0
    def onRightClick(self, position):  # used to quit the current action
        # print "right click", position
        mapPos = self.canvas.getCoordinateTransform().toMapCoordinates(
            position["x"], position["y"])
        newPoints = [[mapPos.x(), mapPos.y()]]
        # if newPoints == self.lastClicked: return # sometimes a strange "double click" is given

        # self.rubberband.reset(self.polygon)
        # self.rubberband.reset(QGis.Point)
        # print "setting rubberband", mapPos.x(),mapPos.y()
        self.rubberband.addPoint(QgsPoint(mapPos.x(), mapPos.y()))
        self.toolPan = QgsMapToolPan(self.canvas)
        self.canvas.setMapTool(self.toolPan)
        # create new vlayer ???
        self.angles(mapPos.x(), mapPos.y())
        self.tool = None
 def _radioButtonsChanged(self):
     self.populateLayerSelector()
     self.comboAreasToAvoidLayers.setEnabled(self.radioAreasToAvoidLayer.isChecked())
     self.btnAreasToAvoidFromCanvas.setEnabled(
         self.radioAreasToAvoidPolygon.isChecked()
     )
     self.btnAreasToAvoidClear.setEnabled(self.radioAreasToAvoidPolygon.isChecked())
     self.btnAreasToAvoidSave.setEnabled(self.radioAreasToAvoidPolygon.isChecked())
     if self.radioAreasToAvoidPolygon.isChecked():
         if self.areasToAvoid:
             for geometry in self.areasToAvoid:
                 footprint = self.createFootprintArea()
                 footprint.setToGeometry(geometry)
                 self.areasToAvoidFootprint.append(footprint)
     else:
         iface.mapCanvas().setMapTool(QgsMapToolPan(iface.mapCanvas()))
         for footprint in self.areasToAvoidFootprint:
             footprint.reset(QgsWkbTypes.PolygonGeometry)
Esempio n. 28
0
    def __init__(self, layerSet):
        QMainWindow.__init__(self)
        self.showFullScreen()
        self._canvas = GMapCanvas()
        self._canvas.setCanvasColor(Qt.white)
        self.setCentralWidget(self._canvas)

        self._layerSet = layerSet
        self._canvas.setLayerSet(layerSet)

        self._extent = self._layerSet.rawLayers[len(self._layerSet.rawLayers) -
                                                1].extent()
        self._canvas.setExtent(self._extent)

        self._toolPan = QgsMapToolPan(self._canvas)
        self.pan()

        self._layerDock = GAppLayerDocker(self.centralWidget(), layerSet,
                                          self._canvas)
        self.addDockWidget(Qt.LeftDockWidgetArea, self._layerDock)
Esempio n. 29
0
    def __init__(self, parent=None, layer_to_edit=None):
        QDialog.__init__(self, parent)
        self.setupUi(self)
        self.layer_to_edit = layer_to_edit
        self.aoi_drawn = []
        self.highlight_tile = None

        self.setup_gui()

        # init render widget
        self.render_widget.canvas.setDestinationCrs(
            self.layer_to_edit.qgs_layer.crs())
        self.render_widget.canvas.setLayers([self.layer_to_edit.qgs_layer])
        self.render_widget.canvas.setExtent(self.layer_to_edit.extent())
        self.render_widget.refresh()

        self.map_tool_pan = QgsMapToolPan(self.render_widget.canvas)
        self.render_widget.canvas.setMapTool(self.map_tool_pan, clean=True)

        # flags
        self.setWindowFlags(self.windowFlags() | Qt.WindowMinimizeButtonHint)
Esempio n. 30
0
    def __init__(self, server, user, repo, graph, layername):
        super(LayerExplorer, self).__init__(None)
        self.user = user
        self.server = server
        self.repo = repo
        self.layername = layername
        self.layer = None
        self.extent = None
        self.renderer = None
        self.graph = graph

        self.setupUi(self)

        self.history = HistoryTree(self)
        self.history.updateContent(self.server, self.user, self.repo,
                                   self.graph, self.layername)
        historyTreeWrapper = HistoryTreeWrapper(self.history)
        layout = QVBoxLayout()
        layout.setMargin(0)
        layout.addWidget(historyTreeWrapper)
        self.historyWidget.setLayout(layout)
        layout = QVBoxLayout()
        layout.setMargin(0)
        self.canvas = QgsMapCanvas()
        self.canvas.setCanvasColor(Qt.white)
        self.panTool = QgsMapToolPan(self.canvas)
        self.canvas.setMapTool(self.panTool)
        layout.addWidget(self.canvas)
        self.mapWidget.setLayout(layout)
        self.canvas.extentsChanged.connect(self.refreshLayer)

        self.history.currentItemChanged.connect(self.itemChanged)

        self.resize(900, 500)
        self.setWindowTitle("Layer Explorer [{}]".format(layername))
        self.setWindowFlags(Qt.Window)

        setCurrentWindow(self)

        self.bar = MessageBar(self.canvas)