我按照这里的说明操作:
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中工作。我想也许它缺少所有的插件。我错过了什么?
请帮忙。
答案 0 :(得分:0)
我弄明白了这个问题。
这与我发布的代码无关。但是,这对于遇到类似错误的其他人来说会很有帮助。
我的代码来自QGIS_-Code-Examples(2_basic_main_window)
我没有更改myPluginsDir变量。请确保更改它,因为默认情况下会出错。