阅读:2241回复:4
求助,如何用AO或AE来处理shp文件
我有两个shp文件,一个是图版,一个是山脊线,我想要用山脊线文件叠加在图版文件上,然后用山脊线文件来分割图版文件,比如如果一条线穿过了一个图版,就把此图版分割成两个新的图版,请问大家用AO或AE怎么实现啊?
|
|
|
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> |
|
|
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里
|
|
3楼#
发布于:2007-02-27 19:51
我也出现了楼上的这个问题,始终解决不了,请高手出场啊!
|
|
4楼#
发布于:2007-03-06 11:16
这个问题提示很清楚了,被分割多边形或线必须是被分割线分成两部分,即所谓的左边和右边.
|
|