3.3.15 IFeature


IFeature是要素对象,它提供了对矢量要素的几何数据和属性数据进行设定和获取的方法。

要素对象主要用于支撑要素图层对象((IFeatureModelLayer))的相关操作(比如对要素的更新,添加,删除等)。具体使用示例可参考矢量编辑

要素对象由MapManagerCOM组件的CreateFeature()接口创建。

1.GetFeatureId

说明:

获取要素ID。一般一个矢量图层中,每个要素的Id是唯一的。

语法:

Javascript调用

GetFeatureId()

C++调用

HRESULT GetFeatureId([out,retval] LONG* featureId)

C#调用

long GetFeatureId()

返回值: featureId

featureId表示要素ID。

2.SetFeatureId

说明:

设置要素ID。

语法:

Javascript调用

SetFeatureId(featureId)

C++调用

HRESULT SetFeatureId([in] LONG featureId)

C#调用

void SetFeatureId(long featureId)

参数:

参数名 参数类型 说明
featureId long 要素ID

3.SetGeometryType

说明:

设置要素的几何类型。

语法:

Javascript调用

SetGeometryType(type)

C++调用

HRESULT SetGeometryType([in] SHORT type)

C#调用

void SetGeometryType(short type)

参数:

参数名 参数类型 说明
type short 要素的几何类型。主要有:1-点; 2-线; 4-面

几何类型:

类型Id 几何类型
1
2 线
4
5 多结构

注:当要素类型为多结构时,需要设定要素的子几何类型,一般会是多点、多线、多面结构。不会存在同一个图层中同时出现两种类型的结构。

4.GetGeometryType

说明:

获取要素的几何类型。

语法:

Javascript调用

GetGeometryType()

C++调用

HRESULT GetGeometryType([out,retval] SHORT *type)

C#调用

short GetGeometryType()

返回值: type

type表示要素的几何类型。

5.SetComponentType

说明:

设置要素的子几何类型。当要素的几何类型为多结构时,需要设定要素的子几何类型,进一步明确要素的几何类型结构。

语法:

Javascript调用

SetComponentType(type)

C++调用

HRESULT SetComponentType([in] SHORT type)

C#调用

void SetComponentType(short type)

参数:

参数名 参数类型 说明
type short 子几何类型ID

几何类型:

类型Id 几何类型
1
2 线
4
5 多结构

6.GetComponentType

说明:

获取子几何类型。

语法:

Javascript调用

GetComponentType()

C++调用

HRESULT GetComponentType([out,retval] SHORT *type)

C#调用

short GetComponentType()

返回值: type

type表示子几何类型。

几何类型:

类型Id 几何类型
1
2 线
4
5 多结构

7.AddAttribute

说明:

添加属性值。

语法:

Javascript调用

AddAttribute(name, value, type)

C++调用

HRESULT AddAttribute([in] BSTR name, [in] BSTR value, [in] SHORT type, [out,retval] VARIANT_BOOL* state)

C#调用

bool AddAttribute(string name, string value, short type)

参数:

参数名 参数类型 说明
name string 属性名称
value string 属性值
type short 属性值类型。类型见下表

属性值类型

属性值类型 数值类型
1 int
2 long
3 float
4 double
5 string
6 bool

返回值: state

state表示是否设置成功。true-成功; false-失败。

8.GetAttributeValueByName

说明:

根据属性名称获取属性值。

语法:

Javascript调用

GetAttributeValueByName(name)

C++调用

HRESULT GetAttributeValueByName([in] BSTR name, [out,retval] BSTR* value)

C#调用

string GetAttributeValueByName(string name)

参数:

参数名 参数类型 说明
name string 属性名称

返回值: value

value表示属性值。

9.GetAttributeTypeByName

说明:

根据属性名称获取属性值类型。

语法:

Javascript调用

GetAttributeTypeByName(name)

C++调用

HRESULT GetAttributeTypeByName([in] BSTR name, [out,retval] SHORT* value)

C#调用

short GetAttributeTypeByName(string name)

参数:

参数名 参数类型 说明
name string 属性名称

返回值: value

value表示属性值类型。

10.AddPoint

说明:

添加坐标点。

注意:根据要素的几何结构,需要添加对应数量的坐标点。如在单结构下,点需要添加一个坐标点,线至少需要添加2个坐标点,面至少需要添加3个坐标点。如果坐标点的数量不匹配,那么要素在场景中无法正常显示。

语法:

Javascript调用

AddPoint(posX, posY, posZ)

C++调用

HRESULT AddPoint([in] DOUBLE posX, [in] DOUBLE posY, [in] DOUBLE posZ)

C#调用

void AddPoint(double posX, double posY, double posZ)

参数:

参数名 参数类型 说明
posX double X坐标,代表经度
posY double Y坐标,代表纬度
posZ double Z坐标,代表高程值

11.AddPoints

说明:

添加坐标点集信息。点集信息的格式为:

点、线、面几何类型X,Y,Z坐标之间用","分隔,2个点坐标之间用";"分隔,如一条线的2个点(120.12,30.13,10;120.14,30,15,10;),最后一位坐标必须以";"结尾。

多结构几何类型X,Y,Z坐标之间用","分隔,2个点坐标之间用";"分隔,中间以"|"进行分隔,如2条线,每条线有2个点(120.12,30.13,10;120.14,30,15,10;|120.15,30.15,10;120.16,30,16,10;)

语法:

Javascript调用

AddPoints(bstrPoints)

C++调用

HRESULT AddPoints([in] BSTR bstrPoints)

C#调用

void AddPoints(string bstrPoints)

参数:

参数名 参数类型 说明
bstrPoints string 点集字符串

12.GetPoints

说明:

获取坐标点集信息。点集信息的格式为:

点、线、面几何类型X,Y,Z坐标之间用","分隔,2个点坐标之间用";"分隔,如一条线的2个点(120.12,30.13,10;120.14,30,15,10;),最后一位坐标以";"结尾。

多结构几何类型X,Y,Z坐标之间用","分隔,2个点坐标之间用";"分隔,中间以"|"进行分隔,如2条线,每条线有2个点(120.12,30.13,10;120.14,30,15,10;|120.15,30.15,10;120.16,30,16,10;)

语法:

Javascript调用

GetPoints()

C++调用

HRESULT GetPoints([out,retval] BSTR* value)

C#调用

string GetPoints()

返回值: value

value表示坐标点集字符串。

13.ClearFeature

说明:

清空要素信息。当要素对象操作完毕时,可以调用此接口清空要素中的坐标点集和属性数据信息。

语法:

Javascript调用

ClearFeature()

C++调用

HRESULT ClearFeature([out,retval] VARIANT_BOOL* state)

C#调用

bool ClearFeature()

返回值: state

state表示是否清空成功。true-成功; false-失败。

14.GetAttributeCount

说明:

获取要素属性字段的数量。

语法:

Javascript调用

GetAttributeCount()

C++调用

HRESULT GetAttributeCount([out,retval] LONG* count)

C#调用

long GetAttributeCount()

返回值: count

count表示要素属性字段数量。

15.GetAttributeNameByIndex

说明:

通过索引获属性名称。该接口配合GetAttributeCount使用。

语法:

Javascript调用

GetAttributeNameByIndex(index)

C++调用

HRESULT GetAttributeNameByIndex([in] LONG index, [out,retval] BSTR* name)

C#调用

string GetAttributeNameByIndex(Long index)

参数:

参数名 参数类型 说明
index Long 属性字段索引值

返回值: name

name表示属性字段。

results matching ""

    No results matching ""