使用C#中的arcobjects在多边形内创建一个随机点?

时间:2013-11-29 11:45:14

标签: c# arcobjects

我试图在C#中创建一个函数,该函数将返回一个随机的IPoint特征,该特征应该在一个选定的多边形内,但我已经完成了如何继续的buff。

理想情况下,该功能的定义如下:

public IPoint Create_Random_Point(IGeometry inGeom)

2 个答案:

答案 0 :(得分:1)

有一个名为CreateRandomPoints的地理处理工具,可用于在特定边界内生成点(例如,在窗口范围内,在多边形内或沿着线)。看看:

http://resources.arcgis.com/en/help/arcobjects-java/api/arcobjects/com/esri/arcgis/geoprocessing/tools/datamanagementtools/CreateRandomPoints.html

地理处理工具相当容易实现到arcobjects代码中,但有时执行起来有点慢。

答案 1 :(得分:-1)

为了将来的参考,我创建了一个自定义函数,试图在polgon的扩展中找到一个随机点。

 private double GetRandomDouble(double Min, double Max)
        {
            //TODO:
            // seed
            Random random = new Random();
            return random.NextDouble() * (Max - Min) + Min;
        }



private IPoint Create_Random_Point(IGeometry inGeom)
        {

                double x = GetRandomDouble(inGeom.Envelope.XMin, inGeom.Envelope.XMax);
                double y = GetRandomDouble(inGeom.Envelope.YMin, inGeom.Envelope.YMax);


                IPoint p = new PointClass();
                p.X = x;
                p.Y = y;

                return p;
        }