遇到这样一个问题,如何判断得到的polyline对象是否为圆弧,简单思考后直接判断polyline的gemetryType,但是这是错误的。
正确的方法是qi得到对应的ISegmentCollection接口,查询segmentCollection中每个segment的gemetryType,可以判断polyline的构造线型.
原因倒是很简单,复杂的polyline可以看成是多个segment的集合,但是当前我的每个polyline对象都是由一个segment构成,所以可以按如下方式写代码:
ipPolylineFeatureClass->Search(NULL,VARIANT_FALSE,&ipFeatureCursor);
ipFeatureCursor->NextFeature(&ipFeature);
IGeometryPtr ipGeometry;
IPolylinePtr ipPolyline;
long lOID;
esriGeometryType enuGeomType;
ipFeature->get_Shape(&ipGeometry);
ipFeature->get_OID(&lOID);
//ipGeometry->get_GeometryType(&enuGeomType);
IGeometryCollectionPtr ipGeometryCollection;
hr=ipGeometry->QueryInterface(IID_IPolyline,(void**)&ipPolyline);
if(FAILED(hr))
return ;
hr=ipPolyline->QueryInterface(IID_IGeometryCollection,(void**)&ipGeometryCollection);
if(FAILED(hr))
return ;
long lGeometryCount;
hr= ipGeometryCollection->get_GeometryCount(&lGeometryCount);
if(FAILED(hr))
return ;
ISegmentCollectionPtr ipSegmentCollection;
ipSegmentCollection=ipGeometry;
long lSegmentCount;
ipSegmentCollection->get_SegmentCount(&lSegmentCount);
if(FAILED(hr))
return ;
ISegmentPtr ipSegment;
ipSegmentCollection->get_Segment(0,&ipSegment);
if(FAILED(hr))
return ;
esriGeometryType enuSegmentGeomType;
hr= ipSegment->get_GeometryType(&enuSegmentGeomType);
if(FAILED(hr))
return ;
分享到:
相关推荐
spline2polyline.lsp 在ACAD可通过ap命令加载应用,执行命令:spl2pol
tree-polyline.html
an algorithm to offset a polyline, the same funtion you can see in AutoCAD, command offset.
flex实现高亮闪烁显示polyline flex实现高亮闪烁显示polyline
本资源为VS2005下C++开发的ARX工程源文件,本程序实现了将直线(line)、圆弧(arc)、多段线(Polyline)合并成多段线(Polyline)。算法很值得学习
地图工具使用WKT和PolyLine格式绘制几何图形的简单工具。 演示站点: : *几何变换将很快添加!
AutoCAD 读取 Spline ,PolyLine 及Poyline3D上点坐标的插件,使用方法:(ACAD 2004 以上版本) 1)netload,载入dll 2) 运行Read 命令 3) 按界面提示操作
C#_CAD二次开发_快速选择dwg中的所有多段线Polyline和样条曲线Spline.cpp(两个函数)
以时间为x轴坐标,曲线从左边进入,到右边界时整体自动左移。
。,。,。,。,,吗,吗,吗,吗,吗,mnbvgfgsdfadfaadasdad........................
C#_CAD二次开发_批量将多段线Polyline转化为样条曲线Spline(代码)
与nodejs兼容( npm install @mapbox/polyline和浏览器(复制src/polyline.js ))。 从/解码为[lat, lng]坐标对。 使用fromGeoJSON()从GeoJSON对象编码,或使用toGeoJSON解码为GeoJSON LineString。 安装 npm ...
AutoCAD *.dxf文件解析,使用dxflib搞定polyline/spline/ellipse等复杂图形。实现了以下元素的解析和绘制: 元素:point、line、circle、arc、polyline、spline、ellipse、text 其他:layer、block 绘制图形,使用了...
解决SVG画线line-polyline、矩形rect等线条的stroke-width=1px属性,显示结果变宽成为2px的问题,以及文字模糊的问题
arcmap vba将polyline格式的文件的所有节点导入到数据库
Cesium 用Entity绘制polyline,如果使用CallbackProperty方法进行动态绘制,depthFailMaterial属性将失效。 从官方github上的issue找了替代的方法。 动态Primitive线的绘制 // 绘制方法 this._...
折线Rust 中的 Google Encoded Polyline 编码和解码。关于坐标阶的注解此 crate 使用geo-types crate 中的Coordinate和LineString类型,它们按(x, y)顺序对坐标进行编码。折线算法和第一方文档采用相反的坐标顺序。...
leaflet绘制带箭头的线条(polyline)
折线Polyline 是一种在Google Maps API 中解码和编码折线的工具。 如果您想在查询 Google API 以获取路线时绕过 25 个 WayPoints 的限制,它会很有用。 通过解码用于在地图上绘制路径的折线,您可以获得更多坐标。 ...
项目需求,需要做一个绘制行动轨迹的功能,因为本身项目集成的是高德地图,所以在此处,就针对高德地图来简单说一下绘制行动轨迹的功能。 主要功能: 1.地图显示 2.定位 3.Polyline轨迹绘制