合并要素的算法???
这几天一直在思考这样一个功能,如何合并一个要素类中的某些特定要素。如在一个要素类中有10个要素,我们希望逐个合并两个距离小于容差的要素,这样合并的最后结果可能是全部要素都合并在一起,或者是135合并,246合并,789合并,10不与任何要素合并。
这个功能看起来很简单,但要实现起来却并非如此,比如1与3可以合并,但1与5并非可以合并,只有当1和3合并完后更新为新的1时,1与5才具有可合并的特性。通过一个简单的方法,我可以获得所有的可合并要素对,如:
5-1
5-4
18-17
19-18
20-19
21-20
22-13
22-21
23-22
24-13
24-22
24-23
25-19
25-20
25-21
27-17
28-17
28-27
现在,我需要找到一个算法,在上面的数组中寻找出以下连通关系,即
1-5-4可以合并
18-17-19-20-21-22-13-24-23-25-27-28可以合并
显然,这是一种网络的连通性分析,目前我实在没有想到算法来寻找出上面数组中存在这两种连通路线。如果有做过类似的人,希望能够给点意见,谢谢。
Related Items
Comments
下面的代码有点问题,帮我看看.thank you
ISimpleLineSymbol pLineSymbol;
pLineSymbol = new SimpleLineSymbol();
IRgbColor rgbColor = new RgbColorClass();
ISymbol pSymbol;
pLineSymbol.Width = 1; //线宽
rgbColor = new RgbColor(); //线色
rgbColor.Blue = 128;
pLineSymbol.Color = rgbColor;
pLineSymbol.Style = esriSimpleLineStyle.esriSLSDashDot;//虚线
pSymbol = (ISymbol)pLineSymbol;
ILine pLine = new LineClass();
pLine.PutCoords(pFromPoint,pToPoint);//构造线段
// IPolyline pPolyline = new PolylineClass();
ILineElement pLineElement = new LineElementClass();
pLineElement.Symbol = pLineSymbol;
IElement pIelement;
pIelement = pLineElement as IElement;
pIelement.Geometry = pLine;//这里出了问题,pLine转不过去
pGrphContainer.AddElement(pIelement,0);
就那句有问题,pLine在之前都是正常的有值的。是否是需要别的symbol来修饰ILine?
你好,请教一个问题,我在Table中添加了一个二进制(esriFieldTypeBlob)的字段,为什么它的Length显示0,而且二进制数据也写不进去?
二进制数据又一定是SHAPE字段的内容,当然不可能显示长度或面积,而且这个字段只接受IGeometry类型的对象
这个二进制字段是在Table里创建的,类型是
esriFieldTypeBlob,可以设它的Length,
但是二进制数据写不进去,难道在Table里可以写IGeometry ?二进制字段(Blob)可以在FeatureClass和Table里创建,它不是Shape字段.
你是基于AO来读写二进制字段的,在写的时候,只有pFeat.Value(i)=[数值/字符串],pFeat.Shape=pGeo这两种方式来写进值.如果你是要将图片写入一个BLOB中,显然通过这种方式是不行的,你可以试验通过AO的OLE/DB通道看看.
我是个GIS初学者,有问题想请教,请问您有QQ号吗?
如果1个多边形被分成了3部分或更多的情况下,是不是没有考虑呢
pFeatureClassName = new FeatureClassNameClass();
程序报"systemRuntime.InteropServices.COMException"错误
在如下代码后
pFeatureClassName.FeatureType = esriFeatureType.esriFTSimple;
pFeatureClassName.ShapeFieldName = "Shape";
pFeatureClassName.ShapeType = pFeatureClass.ShapeType;
pBasicGeop = new BasicGeoprocessorClass();
pOutputFeatClass=pBasicGeop.Merge(pArray,pTable,pFeatureClassName);
Merge方法报对 “COM 组件的调用返回了错误 HRESULT E_FAIL”错误。
请大侠指点一下。谢谢
IFeatureClassName对象是无法new出来的。
Leave a comment
Or, take a look at Archives and Categories
这个功能已经使用一种异乎寻常简单的方式解决,不用解这个网络。