beautymeteor
路人甲
路人甲
  • 注册日期2006-05-11
  • 发帖数15
  • QQ
  • 铜币168枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2112回复:4

求助,如何用AO或AE来处理shp文件

楼主#
更多 发布于:2006-05-12 12:36
我有两个shp文件,一个是图版,一个是山脊线,我想要用山脊线文件叠加在图版文件上,然后用山脊线文件来分割图版文件,比如如果一条线穿过了一个图版,就把此图版分割成两个新的图版,请问大家用AO或AE怎么实现啊?
喜欢0 评分0
http://wall.cnblogs.com/
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2006-05-13 14:25
<P>可以利用要素的编辑功能来实现</P>
<P>利用线找到穿过的一个图版,然后把此图版分割成两个新的图版,下图为分割要素的一个例子</P>
<H1>IFeatureEdit Example</H1><PRE><PRE><PRE><P>The following VBA code fragment illustrates how to implement the appropriate calling behavior on multiple features within a set..</P><CODE><PRE> </PRE><PRE>‘Assume pSet (ISet) and pMoveVector (ILine) already exist.
Dim pUnknown As IUnknown, pFeatureEdit As IFeatureEdit
Set pUnknown = pSet.Next</PRE><PRE>Do While pUnknown Is Not Nothing
  Set pFeatureEdit = pUnknown
  pFeatureEdit.MoveSet pSet, pMoveVector
  Set pUnknown = pSet.Next
Loop</CODE>
</PRE><P>The following code is an example of one way you could split a selected polygon features by a polyline.<CODE></P><PRE>        </PRE><PRE>Public Sub SplitFeatures(pSelectionSet As ISelectionSet, pPolyLine As IPolyline)</PRE><PRE>‘ open a feature cursor on the selected features that
‘ intersect the splitting geometry
Dim pFeatCursor As IFeatureCursor
Dim pSpatialFilter As ISpatialFilter
Set pSpatialFilter = New SpatialFilter
Set pSpatialFilter.Geometry = pPolyLine
pSelectionSet.Search pSpatialFilter, True, pFeatCursor</PRE><PRE>‘ Clean up the splitting geometry
‘ This is necessary because, for polygons, IFeatureEdit::Split
‘ relies internally on ITopologicalOperator::Cut
Dim pTopoOpo As ITopologicalOperator
Set pTopoOpo = pPolyLine
pTopoOpo.Simplify</PRE><PRE>‘ Loop through the features and split them
Dim pFeature As IFeature
Set pFeature = pFeatCursor.NextFeature</PRE><PRE>Do Until pFeature Is Nothing
  Dim pFeatureEdit As IFeatureEdit
  Set pFeatureEdit = pFeature
  pFeatureEdit.Split pPolyLine
  Set pFeature = pFeatCursor.NextFeature
Loop</PRE><PRE>End Sub</PRE></CODE></PRE></PRE></PRE>
举报 回复(0) 喜欢(0)     评分
子兰
路人甲
路人甲
  • 注册日期2005-08-03
  • 发帖数15
  • QQ
  • 铜币189枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-05-24 11:25
利用上述代码分割多边形时,它在pFeatureEdit.Split pPolyLine里提示出错“a polygon cut operation could not classify all parts of the polygon as left or right of the cutting line"我的线和面文件在一个featuredataset里
举报 回复(0) 喜欢(0)     评分
xgyb12458
路人甲
路人甲
  • 注册日期2006-09-11
  • 发帖数1
  • QQ
  • 铜币128枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-02-27 19:51
我也出现了楼上的这个问题,始终解决不了,请高手出场啊!
举报 回复(0) 喜欢(0)     评分
chenjunfc
外卖仔
外卖仔
  • 注册日期2003-08-14
  • 发帖数58
  • QQ283832077
  • 铜币452枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2007-03-06 11:16
这个问题提示很清楚了,被分割多边形或线必须是被分割线分成两部分,即所谓的左边和右边.
举报 回复(0) 喜欢(0)     评分
游客

返回顶部