两个线图层相交的交点再另生成一个点图层

比如说有两个featureclass,都为polyline型。分别为ployline1和polyline2层,他们其中有些feature是彼此相交的,就是intersect的,我想处理后把相交的这些点保存在一个新的featureclass里面,然后导出到数据库。其实就是想做成和arc toolbox里的那个intersects完全一样的功能。
我现在的做法是首先用featurecursor分别得到两个线图层的所有feature,用geometry=pfeature.shape获得每个feature的geometry,然后用itopological的union(Igeometry)方法合并所有的geometry(这样里能不能改进呢?因为合并的这个函数的效率很低,花费时间很长。但是后面的intersect操作要求的函数就是两个完整的geometry阿),也就得到了两个大的geometry,这两个geometry即就是两个线图层的features的形状。然后用这两个geometry进行itopological.intercects(igeometry,维数)操作,这样可以得到一个resultgeometry,这就是两个线图层所有交点的形状。但是我现在想把所有的交点保存成为另外一个图层,也就是说要把每一个交点转换到ifeature接口上面,然后把它们添加到一个featureclass里面从而生成新的图层。可是如何把geometry转换的feature上呢???
解决办法:
首先创建一个新的featureclass,然后用
Dim pNewFeature As IFeature
pNewFeature = pNewFeatureClass.CreateFeature()
pNewFeature.Shape = pGeometryroad '这是交点的geometry
pNewFeature.Store()
把已经求得的交点的geometry作为feature.shape保存到新的feature,如此循环……
最后把属性值在赋给新的feature,再把这个featureclass赋给一个layer,添加到当前map中。

posted on 2008-03-29 20:54  fxlcoco  阅读(1393)  评论(3编辑  收藏  举报

导航