bool TeExportLayerToShapefile(TeLayer* layer, const string& baseName) { if (!layer) return false; string fbase = baseName; if (baseName.empty()) fbase = layer->name(); TeTheme* tempTheme = new TeTheme(); tempTheme->layer(layer); tempTheme->collectionTable(""); tempTheme->collectionAuxTable(""); tempTheme->setAttTables(layer->attrTables()); TeQuerierParams qPar(true, true); qPar.setParams(tempTheme); TeQuerier* tQuerier = new TeQuerier(qPar); bool res = TeExportQuerierToShapefile(tQuerier, baseName); delete tQuerier; delete tempTheme; return res ; }
bool TeExportShapefile(TeLayer* layer, const string& shpFileName, const string& tableName, const string& restriction) { if (!layer || shpFileName.empty()) return false; // check if asked table exist TeAttrTableVector& vTables = layer->attrTables(); TeAttrTableVector::iterator it = vTables.begin(); while (it != vTables.end()) { if (it->name() == tableName) break; ++it; } if (it == vTables.end()) return false; TeAttrTableVector askedTable; askedTable.push_back(*it); TeTheme* tempTheme = new TeTheme(); tempTheme->attributeRest(restriction); tempTheme->layer(layer); tempTheme->collectionTable(""); tempTheme->collectionAuxTable(""); tempTheme->setAttTables(askedTable); TeQuerierParams qPar(true, true); qPar.setParams(tempTheme); TeQuerier* tQuerier = new TeQuerier(qPar); bool res = TeExportQuerierToShapefile(tQuerier, shpFileName); delete tQuerier; delete tempTheme; return res ; }