Engine中实现平头缓冲

Engine中如何生成平头缓冲区?ITopologicalOperator.Buffer方法无法设置End Type类型是“Flat”还是“Round”。
已邀请:

朱新颖

赞同来自: 太阳升温了

【解决办法】:
Engine中提供了生成平头缓冲的接口,利用IBufferConstruction和IBufferConstructionProperties接口,设置IBufferConstructionProperties.EndOption为esriBufferFlat即为平头缓冲。参考代码:

IGeometry polyline = feature.ShapeCopy; 
IEnumGeometry enumGeometry = new GeometryBagClass();
IGeometryCollection geometryCollection = enumGeometry as IGeometryCollection;
geometryCollection.AddGeometry(polyline);
IBufferConstruction bufferContruction = new BufferConstructionClass();
IBufferConstructionProperties bufferProper = bufferContruction as IBufferConstructionProperties;
bufferProper.EndOption = esriBufferConstructionEndEnum.esriBufferFlat;
IGeometryCollection outputBuffers = new GeometryBagClass();
bufferContruction.ConstructBuffers(enumGeometry, 200, outputBuffers);

要回复问题请先登录注册