Skip to content
Snippets Groups Projects
mapvisualization.py 70.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            :return:
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            assert isinstance(extent, SpatialExtent)
    
            extent = extent.toCrs(self.crs())
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            if not isinstance(extent, SpatialExtent) \
                or extent.isEmpty() or not extent.isFinite() \
                or extent.width() <= 0 \
                or extent.height() <= 0 \
                or extent == self.mSpatialExtent:
                return
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
    
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            if self.mSpatialExtent == extent:
                return
    
            self.mSpatialExtent = extent
            for mapCanvas in self.mapCanvases():
                assert isinstance(mapCanvas, MapCanvas)
    
            if lastExtent != extent:
                self.sigSpatialExtentChanged.emit(extent)
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
        def mapViewDock(self)->MapViewDock:
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            Returns the MapViewDock that controls all MapViews
            :return: MapViewDock
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            return self.mMapViewDock
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
    
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
        def setMapBackgroundColor(self, color:QColor):
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            Sets the MapCanvas background color
            :param color: QColor
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            assert isinstance(self.mMapViewDock, MapViewDock)
            self.mMapViewDock.setMapBackgroundColor(color)
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
        def mapCanvases(self, mapView=None)->list:
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            Returns MapCanvases
            :param mapView: a MapView to return MapCanvases from only, defaults to None
            :return: [list-of-MapCanvas]
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            if isinstance(mapView, MapView):
                s = ""
            return self.mMapCanvases[:]
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
    
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
        def mapViews(self)->list:
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            Returns a list of all mapviews
            :return [list-of-MapViews]:
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            return self.mMapViewDock[:]
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
    
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
        def setCrs(self, crs):
            assert isinstance(crs, QgsCoordinateReferenceSystem)
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
    
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            if self.mCRS != crs:
                transform = QgsCoordinateTransform()
                transform.setSourceCrs(self.mCRS)
                transform.setDestinationCrs(crs)
                if transform.isValid() and not transform.isShortCircuited():
                    self.mCRS = crs
                    for mapCanvas in self.mapCanvases():
                        # print(('STV set CRS {} {}', str(mapCanvas), self.mCRS.description()))
                        mapCanvas.setDestinationCrs(QgsCoordinateReferenceSystem(crs))
                    """
                    from timeseriesviewer.utils import saveTransform
                    if saveTransform(self.mSpatialExtent, self.mCRS, crs):
                        self.mCRS = crs
                        
                    else:
                        pass
                    """
                    self.sigCRSChanged.emit(self.crs())
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
        def crs(self)->QgsCoordinateReferenceSystem:
            """
            Returns the QgsCoordinateReferenceSystem
            :return: QgsCoordinateReferenceSystem
            """
            return self.mCRS
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
    
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
        def spatialExtent(self)->SpatialExtent:
            """
            Returns the SpatialExtent
            :return: SpatialExtent
            """
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
    
    
        def navigateToTSD(self, TSD:TimeSeriesDate):
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            """
    
            Changes the viewport of the scroll window to show the requested TimeSeriesDate
            :param TSD: TimeSeriesDate
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            """
    
            assert isinstance(TSD, TimeSeriesDate)
    
    Benjamin Jakimow's avatar
    Benjamin Jakimow committed
            #get widget related to TSD
            tsdv = self.DVC.tsdView(TSD)
            assert isinstance(self.scrollArea, QScrollArea)
            self.scrollArea.ensureWidgetVisible(tsdv.ui)