首页 > 解决方案 > 如何使用 ArcGisRuntime SDK 在 Qt 创建器中添加光栅图像

问题描述

这是我编写的代码,但无法显示光栅图像。

#include "Map.h"
#include "MapGraphicsView.h"
#include "Raster.h"
#include "RasterLayer.h"


using namespace Esri:: ArcGISRuntime;

Raster_example::Raster_example(QWidget* parent /*=nullptr*/):
    QMainWindow(parent)
{

    Raster* raster = new Raster("D:/Sony/blr.tif", this);
     // Raster* raster = new Raster(buildRasterPath,this);
     RasterLayer rasterLayer = new RasterLayer(raster);

     // m_map.getOperationalLayers().add(rasterLayer);
    // Create the Widget view
    m_mapView = new MapGraphicsView(this);

以下是我运行代码时遇到的错误:

  1. 错误:没有从 'Esri::ArcGISRuntime::RasterLayer *' 到 'Esri::ArcGISRuntime::RasterLayer' 的可行转换

  2. 候选构造函数不可行:第一个参数没有从 'Esri::ArcGISRuntime::RasterLayer *' 到 'const Esri::ArcGISRuntime::RasterLayer &' 的已知转换;用 * 取消引用参数

  3. C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\include\QtCore\qglobal.h:372:从宏“Q_DISABLE_COPY”扩展

  4. 错误:C2440:“正在初始化”:无法从“Esri::ArcGISRuntime::RasterLayer *”转换为“Esri::ArcGISRuntime::RasterLayer”

  5. 没有构造函数可以采用源类型,或者构造函数重载决议不明确

标签: qtarcgis-runtime

解决方案


new SomeClass(...)创建该类的实例someClass并返回指向该类的指针。所以它应该像

RasterLayer *rasterLayer = new RasterLayer(raster);

推荐阅读