QGIS 3.10.3的QgsMapCanvas中的动态不起作用 我编写了一个简单的程序,用QGIS API API C++(QGIS 3.3.3)显示栅格数据。 当我在同一区域添加两个光栅层,但坐标系不同时,动态特性在我的mapCanvas上不起作用。 有人能帮我吗? 这是我的密码: mMapCanvas = new QgsMapCanvas(centralWidget); QGridLayout* gridLayout = new QGridLayout; gridLayout->addWidget(mMapCanvas); centralWidget->setLayout(gridLayout); QgsRasterLayer* rasterLayer1 = new QgsRasterLayer("D:\\Test\\image1.tif"); //EPSG:4326 QgsRasterLayer* rasterLayer2 = new QgsRasterLayer("D:\\Test\\image2.tif"); //EPSG:3406 mMapCanvas->setLayers({rasterLayer1, rasterLayer2}); mMapCanvas->zoomToFullExtent();

QGIS 3.10.3的QgsMapCanvas中的动态不起作用 我编写了一个简单的程序,用QGIS API API C++(QGIS 3.3.3)显示栅格数据。 当我在同一区域添加两个光栅层,但坐标系不同时,动态特性在我的mapCanvas上不起作用。 有人能帮我吗? 这是我的密码: mMapCanvas = new QgsMapCanvas(centralWidget); QGridLayout* gridLayout = new QGridLayout; gridLayout->addWidget(mMapCanvas); centralWidget->setLayout(gridLayout); QgsRasterLayer* rasterLayer1 = new QgsRasterLayer("D:\\Test\\image1.tif"); //EPSG:4326 QgsRasterLayer* rasterLayer2 = new QgsRasterLayer("D:\\Test\\image2.tif"); //EPSG:3406 mMapCanvas->setLayers({rasterLayer1, rasterLayer2}); mMapCanvas->zoomToFullExtent();,c++,qgis,coordinate-systems,on-the-fly,C++,Qgis,Coordinate Systems,On The Fly,我通过添加以下代码解决了问题: connect(QgsProject::instance(), &QgsProject::crsChanged, [=] { QgsCoordinateReferenceSystem crs = QgsProject::instance()->crs(); mMapCanvas->setDestinationCrs(crs); });

我通过添加以下代码解决了问题:

connect(QgsProject::instance(), &QgsProject::crsChanged, [=] {
    QgsCoordinateReferenceSystem crs = QgsProject::instance()->crs();
    mMapCanvas->setDestinationCrs(crs);
});