如何在centos中的qgis中创建QgsVectorLayer(可能缺少插件包?)

时间:2013-09-23 11:46:21

标签: c++ centos gis qgis

我按照这里的说明操作:

https://gis.stackexchange.com/questions/37111/how-to-install-qgis-on-centos-6

如果我跑:

QgsVectorLayer * vpoly = new QgsVectorLayer("Polygon", "pointbuffer", "memory");
QgsVectorDataProvider * provider = vpoly->dataProvider();

然后provider是一个NULL指针

另外,如果我这样做:

QString myPluginsDir = "/usr/lib64/qgis";
QgsProviderRegistry * preg = QgsProviderRegistry::instance(myPluginsDir);
QString pluglist=preg->pluginList();
printf("plugins: %s\n",pluglist.toStdString().c_str());

然后打印:

plugins: No data provider plugins are available. No vector layers can be loaded

此外,当我尝试使用以下内容加载QgsVectorLayer时:

QgsVectorLayer * mypLayer = new QgsVectorLayer(myLayerPath, myLayerBaseName,    myProviderName);
if (mypLayer->isValid()){
    qDebug("Layer is valid");
} else {
    qDebug("Layer is NOT valid");
    return;
}

然后它说该图层无效。

这一切在Ubuntu中运行得很好,但我不能让它在centos中工作。我想也许它缺少所有的插件。我错过了什么?

请帮忙。

1 个答案:

答案 0 :(得分:0)

我弄明白了这个问题。

这与我发布的代码无关。但是,这对于遇到类似错误的其他人来说会很有帮助。

我的代码来自QGIS_-Code-Examples(2_basic_main_window)

我没有更改myPluginsDir变量。请确保更改它,因为默认情况下会出错。