2013-09-23 22 views
0

我跟着這裏的指令QgsVectorLayer:如何創建QGIS在CentOS的(也許缺少插件包?)

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

如果我運行:

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

然後供應商是一個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

我想通了這個問題。

這與我發佈的代碼無關。這對於那些得到類似錯誤的人會非常有幫助。

我的代碼從QGIS_-代碼示例(2_basic_main_window)

我沒有改變myPluginsDir變量是模板。確保你改變它,因爲默認情況下它會是錯誤的。