南方数码iData数据工厂二次开发&添加实体到图形数据库

今天我们又来学习一下第三次全国土地调查软件iDATA数据工厂。这是一个将实体添加图形数据库的例子,这例子是一个实体点。和AutoCAD二次开发有点类似,首先创建一个点,然后将点连同地理编码创建为南方iDATA数据工厂的点,使用实体添加函数,提交数据库。其中翻阅iDATA的函数,可以获取得到IDataGeoCode函数有GetDeFaultGeoCode(EntityType type)和iData_GetGeoCode(string entity_name, DbBase pdb = null)。我们使用前者,而前者参数的EntityType是一个枚举类型,看一下IDATA为EntityType都枚举了哪些值。具体如下表所示。

枚举值

代码

IDATAPOINT

65537

IDATAPOLYLINE

65538

IDATAPOLYGON

65539

IDATATEXT

65540

IDATAIMAGE

65541

IDATADEFAULT

65542

GCDPOINT

65543

 

从枚举值我们可以看出,分别对应了的数据类型有点、线、面、文字等。然后构造一个IDataPoint,IDataPoint提供了地理编码和位置两个参数的构造函数,只需要添加相应的值即可。类似AutoCAD的AppendEntity,iDATA也提供了添加实体函数IDataAppendEntity,该函数支持两种类型的参数,分别是iDataEntity、List<iDataEntity>。

好了,说了这么多,虽然功能相对简单,但还是可以学习一下,具体代码如下所示。

using Southgis.iData;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AddPoint
{
    public class Class1
    {
        private iDataInterface iData = new iDataInterface();
        public void AddPoint() 
        {
            Point point;
            ErrorType e = this.iData.iDataGetPoint(null,"选择一个需要添加到实体的点",out point);
            if (e!=ErrorType.eOk)
            {
                return;
            }
            IDataGeoCode geoCode = this.iData.GetDeFaultGeoCode(EntityType.IDATAPOINT);
            iDataPoint point_entity = new iDataPoint(geoCode, point);
            this.iData.iDataAppendEntity(point_entity);
            this.iData.Commit(point_entity, CommitMode.kAppended, false);
            this.iData.iDataRegen(true);
        }
    }
}

 


                                                                      更多内容,微信扫二维码关注公众号

                                                                       


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yGIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值