adong911
路人甲
路人甲
  • 注册日期2006-11-05
  • 发帖数10
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1456回复:3

如何判断一个Geometry是否合法?

楼主#
更多 发布于:2007-05-25 11:38
<P><FONT size=4>我从文件中读取坐标数据,构建多边形对象esriGeometryPolygon,结果写对象的时候,出现自相交的不合法错误,请问我在写之前该如何判断多边形对象的合法性?</FONT></P>
喜欢0 评分0
diligentpig
路人甲
路人甲
  • 注册日期2005-09-14
  • 发帖数47
  • QQ
  • 铜币277枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-05-27 11:53
<P><FONT size=4>对,</FONT><FONT size=4>topoOp.Simplify();这个是检查拓扑用的</FONT></P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2007-05-26 00:32
<P>其实这个在论坛以前就讨论过多次了</P>
<P>把你的答案转过来了</P>
<DIV class=item-content>
<P><FONT size=4>问题:</FONT></P>
<DIV 12px"><FONT size=4>我从文件中读取坐标数据,构建多边形对象esriGeometryPolygon,结果写对象的时候,出现自相交的不合法错误(“line string or poly boundary is self-intersecting”),需要在写之前该判断多边形对象的合法性或避免错误的发生</FONT></DIV>
<P><FONT size=4>解决办法:</FONT></P>
<P><FONT size=4>在保存对象之前进行Simplify。</FONT></P>
<P align=left><FONT size=4>//Simplify多边形对象<BR>ITopologicalOperator2 topoOp;<BR>topoOp = pPolygon as ITopologicalOperator2;<BR>topoOp.IsKnownSimple_2 = false;<BR>topoOp.Simplify();</FONT></P>
<DIV class=clear></DIV></DIV>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
adong911
路人甲
路人甲
  • 注册日期2006-11-05
  • 发帖数10
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-05-25 15:50
自己搞定<BR><a href="http://iadong.blog.sohu.com/47504298.html" target="_blank" >http://iadong.blog.sohu.com/47504298.html</A>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部