PIE-SDK For C++矢量数据的修改

1.功能简介

    目前PIE SDK支持矢量数据的修改或删除,下面对矢量数据的修改与删除功能进行介绍,并附上示例代码。

2.功能实现说明

2.1 矢量数据的修改

2.2 实现思路及原理说明

第一步

获取需要修改的矢量数据

第二步

根据条件进行设置要素的值进行修改或删除

2.3 核心接口与方法

接口/

方法/属性

说明

SysDataSource::DatasetFactory

OpenFeatureDataset(QString path)

创建要素数据集

SysDataSource::FeatureDatasetPtr

GetNextFeature()

获取下一个要素

UpdateFeature()

更新要素

DeleteFeature()

删除要素

UpdateFeature()

更新要素

SysDataSource::FeaturePtr

SetValue()

设置字段值

2.4 示例代码

项目路径

百度云盘地址下/PIE示例程序/04数据操作/05矢量数据的修改

数据路径

自定义即可

视频路径

百度云盘地址下/PIE视频教程/04数据操作/05矢量数据的修改.avi

示例代码

void PIEMainWindow::On_ActionEditVectorData_Triggered(bool checked)

{

    QString filter = "Shapefiles (*.shp)";

    QString inputFile = QFileDialog::getOpenFileName(nullptr, "请选择要编辑的数据", "", filter);

    if (inputFile.isEmpty())

    {

        return;

    }

 

    SysDataSource::FeatureDatasetPtr fDataSetPtr = SysDataSource::DatasetFactory::Instance()->OpenFeatureDataset(inputFile);

    if (fDataSetPtr == nullptr) return;

 

    //删除要素

    fDataSetPtr->DeleteFeature(0);//删除FID0的要素

    //修改要素

    SysDataSource::FeatureClassPtr pFeatureClass = new SysDataSource::FeatureClass(fDataSetPtr);

    SysDataSource::FeatureCursorPtr pCursor = pFeatureClass->Search(nullptr);

    int index = pFeatureClass->GetFields()->GetFieldIndex("Name");//根据实际数据情况进行适配即可

    //遍历要素,修改字段Name属性值为B

    SysDataSource::FeaturePtr pFeature = pCursor->NextFeature();

    while (pFeature!=nullptr)

    {

        pFeature->SetValue(index, "B");

        fDataSetPtr->UpdateFeature(pFeature);

        pFeature = pCursor->NextFeature();

    }

    bool flag= fDataSetPtr->Save();

    pCursor->Release();

    SysCarto::LayerPtr fLayer = SysCarto::LayerFactory::Instance()->CreateDefaultLayer(inputFile);

    m_pCurrentControl->GetMap()->AddLayer(fLayer);

    m_pCurrentControl->GetActiveView()->Refresh();

}

2.5 示例截图

修改前:

PIE-SDK For C++矢量数据的修改

修改后:

PIE-SDK For C++矢量数据的修改

原文链接: https://www.cnblogs.com/PIESat/p/12372203.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    PIE-SDK For C++矢量数据的修改

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/332252

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午6:24
下一篇 2023年3月1日 下午6:24

相关推荐