管线和其附属物的坐标数据都是带有Z值的
而且有些情况下,一个管段的两个端点的x,y值一模一样(垂直的管段)
这样的线,在直接生成shape图层的时候,就会产生问题,特别是
使用ArcSDE的C API直接创建到表中的时候你会发现,这样的数据是生成不了的
解决的方法就是为图层添加Z值,一个图层是否带有高程值,可以在ArcMap中通过查看
图层的属性表得知,带有Z值的图元,在Shape字段中,其类型后面会有个ZM字样
比如point ZM,Polyline ZM
创建带高程Z值的图层时,只设置Point的Z属性是没有用的,默认情况下
ArcEngine会忽略Z值,
两步走,解决问题:
第一步:创建Shape图层,使用IFeatureWorkspace.CreateFeatureClass
此函数的第二个参数是IFields,字段定义,在字段定义中对Shape字段的类型
使用IGeometryDefEdit.HasZ_2 = true指定其包含Z值,