arcobject c++实现检查要素是否为multipart(准确而且快 最主要是real 网上代码有问题)
  TEZNKK3IfmPf 2024年03月30日 83 0
bool    checkMultipart()  //检查是否是多部分要素
{
IFeaturePtr ipFeature = getFeature(); //选择要素---
IGeometryPtr ipGeometry;
ipFeature->get_Shape(&ipGeometry);
IGeometryCollectionPtr ipGeometryCollection = (IGeometryCollectionPtr)ipGeometry;
long geometryCount;
ipGeometryCollection->get_GeometryCount(&geometryCount); //得到由多少个图形组成;
if (geometryCount > 1) //判断大于1时--
{
IGeometryPtr ipCheckGeometry, ipNewCheckGeometry;
for (int i = 0; i < geometryCount-1; i++)
{
ipGeometryCollection->get_Geometry(i,&ipCheckGeometry);
ipGeometryCollection->get_Geometry(i+1, &ipNewCheckGeometry); //该Geometry类型为esriGeometryRing reason: because the polygon is included--by ring;
IRingPtr ipCheckRing = (IRingPtr)ipCheckGeometry; //强制转换:
IRingPtr ipNewCheckRing = (IRingPtr)ipNewCheckGeometry;
short checkInteriror, checkOuter;
ipCheckRing->get_IsExterior(&checkInteriror); // determine whether is 外环
ipNewCheckRing->get_IsExterior(&checkOuter);
if (checkInteriror == 0 || checkOuter == 0)
{
return false;
}
else if(checkInteriror == -1 || checkOuter == -1)
{
return true;
}
}
}
return false;
}

multipart要素是啥--

简单介绍--

see it===

arcobject c++实现检查要素是否为multipart(准确而且快 最主要是real 网上代码有问题)

其中 ---如果有内外环的就不算多要素;;

arcobject c++实现检查要素是否为multipart(准确而且快 最主要是real 网上代码有问题)

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月30日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   17天前   22   0   0 C++
  TEZNKK3IfmPf   17天前   21   0   0 指针C++
  TEZNKK3IfmPf   2024年05月31日   21   0   0 算法C++
TEZNKK3IfmPf