我正在尝试使用 QGIS API 和预定义的 QGIS 项目文件创建一个 Windows 窗体控件,以便我可以在 Windows 窗体控件上设置 X 和 Y 属性,并且 QGIS API 将在控件中显示预定义的地图数据,专注于提供的坐标。
使用 QgsProject::instance()->read() 似乎会导致未处理的异常(访问冲突读取位置 0x00000000),所以我试图逐行挑选实际代码。qgsproject.cpp 的一部分处理从项目文件中提取图层,然后将它们添加到地图画布中,上面写着:
QgsMapLayer *mapLayer = null;
if(type=="vector")
mapLayer = new QgsVectorLayer;
else if(type==""raster")
mapLayer = new QgsRasterLayer;
其中 type 是元素“type”属性的值。
当我尝试在我的 Visual Studio 项目中编译它时,它抱怨这两种类型的地图图层都没有默认构造函数。我唯一可用的构造函数需要路径和基本名称,并且似乎实际上不起作用(因此尝试使用与 gui 相同的方法,因为项目文件确实加载到完整的应用程序 gui 中)。
QgsRasterLayer 的默认构造函数甚至看起来都不是私有成员函数。有谁知道我将如何进行这个编译?
谢谢,里克