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表示属性字段。