【问题标题】:On-the-fly in QgsMapCanvas of QGIS 3.10.3 does not workQGIS 3.10.3 的 QgsMapCanvas 中的动态不起作用
【发布时间】:2020-03-18 03:40:10
【问题描述】:

我正在编写一个简单的程序来使用 qgis api C++ (QGIS 3.10.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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多