isogeo/isogeo-plugin-qgis

Ajouter le zoom sur l'emprise en cas de recherche rapide impliquant l'emprise d'une couche

SimonSAMPERE opened this issue · 0 comments

Actuellement, on zoom sur l'emprise en cas de recherche rapide impliquant un filtre géographique uniquement si ce filtre porte sur l'emprise courante et pas s'il porte sur une couche. On pourrait faire en sorte que ça soit également le cas pour la seconde possibilité en modifiant la méthode set_widget_status du main module Isogeo

            # if "epsg" in search_params:
            #     current_epsg = plg_tools.get_map_crs()
            #     logger.debug("Specific SRS found in search params: {}".format(search_params.get("epsg")))
            #     if current_epsg == search_params.get("epsg"):
            #         canvas = iface.mapCanvas()
            #         e = search_params.get("extent")
            #         rect = QgsRectangle(e[0], e[1], e[2], e[3])
            #         canvas.setExtent(rect)
            #         canvas.refresh()
            #     else:
            #         canvas = iface.mapCanvas()
            #         canvas.mapSettings().setDestinationCrs(
            #             QgsCoordinateReferenceSystem(search_params.get("epsg"))
            #         )
            #         e = search_params.get("extent")
            #         rect = QgsRectangle(e[0], e[1], e[2], e[3])
            #         canvas.setExtent(rect)
            #         canvas.refresh()

            if "coord" in search_params:
                canvas = iface.mapCanvas()
                coordinates = search_params.get("coord").split(",")
                current_crs = plg_tools.get_map_crs()
                extent_rect_wgs84 = QgsRectangle(float(coordinates[0]), float(coordinates[1]), float(coordinates[2]), float(coordinates[3]))
                if current_crs == "EPSG:4326":
                    extent_rect = extent_rect_wgs84
                else:
                    current_crs = QgsCoordinateReferenceSystem(current_crs)
                    wgs84_crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
                    crs_converter = QgsCoordinateTransform(wgs84_crs, current_crs, QgsProject.instance())
                    extent_rect = crs_converter.transformBoundingBox(extent_rect_wgs84)
                canvas.setExtent(extent_rect)
                canvas.refresh()
            else:
                pass